电商购物系统首页的商品分类

简介: 电商购物系统首页的商品分类

如上图对商品的一个分类实际上和省市区的分类十分类似 , 都是通过自关联的方法来实现 , 但是这里不同的是 , 涉及到外键来获取数据

首先让我们来看一下最后通过后端返回数据的形式是什么样子的

"""
        {
            1:{
                channels:[
                    {id:1 , name:手机 , url:},
                    {}
                    {}
                ],
                sub_cats:[
                    {id:500
                    name:手机通讯,
                    sub_cat:[
                        {id:520 , name:华为},
                        {},……
                    ]},
                    {}……
                ]
            },
            2:{},
            3:{},
            ……
            }
        """

也就是说我们需要设置一个大的字典 , 其中第一个键也就是上述的1 , 2 , 3… 这是所有类别的数目 , 也就是下图所展示的部分 , 如id为1所对应的数据保存在channels中的name元素也就是手机相册数码

在我们打开第一个后会展示如下图的页面其中红色框出的就是第二类元素我们将其放在sub_cats这个列表中

现在的逻辑就很清楚了 , 在这之后我们再嵌套一个列表用来保存第二类数据的子类数据

介绍完之后我们要进行第二步进行实操了

  1. 首先我们要通过channels = GoodsChannel.objects.all()获得商品分组频道的所有数据 , 然后进行循环 , 因为我们使用的是一个自关联的方法所以在拿到第一级数据的时候它的id会重复 – 第一级数据中会包含很多子数据如手机 , 相册 , 数码 , 他们的分组id设置的是相同的
categories = {}
        # 查询商品分组频道的所有数据
        channels = GoodsChannel.objects.all()
        for channel in channels:
                    group_id = channel.group_id
                    if group_id not in categories:
                        categories[group_id] = {'channels': [], 'sub_cats': []}
  1. 在设置好第一级模版之后 , 我们再添加channels中的数据
# 获得 第一级 主键的数据 , 通过第一级主键获得该类目下的分类
            category = channel.category
            categories[group_id]['channels'].append(
                {
                    'id' : category.id,
                    'name' : category.name,
                    'url' : channel.url
                }
            )
  1. 在获取第二级第三级数据和之前有一点不相同
group = models.ForeignKey(GoodsChannelGroup, verbose_name='频道组名', on_delete=models.CASCADE)
    category = models.ForeignKey(GoodsCategory, on_delete=models.CASCADE, verbose_name='顶级商品类别')
    url = models.CharField(max_length=50, verbose_name='频道页面链接')
    sequence = models.IntegerField(verbose_name='组内顺序')
  1. 在商品频道组数据库设置的过程中我们是绑定了两个外键字段category,group
    category是一个自关联的表格 , 通过这个表格我们可以获取到所有的数据
# subs通过父类别访问子类别 category 该表格设置的是一个自关联的方法 , 通过父类id获得获得表内子类数据
            category1 = category.subs.all()
            for re_category in category1:
                sub_cat = []
                categories[group_id]['sub_cats'].append(
                    {
                        'id': re_category.id,
                        'name': re_category.name,
                        'sub_cat' : sub_cat
                    }
                )
                category2 = re_category.subs.all()
                for sub_category in category2:
                    sub_cat.append(
                        {
                            'id': sub_category.id,
                            'name': sub_category.name,
                        }
                    )
        context = {'categories':categories}


相关文章
|
前端开发
Bootstrap02 家居商城首页之最新上架&热门家具&分类页面
Bootstrap02 家居商城首页之最新上架&热门家具&分类页面
|
6月前
|
前端开发 Java 关系型数据库
超市商品管理系统的设计与实现(论文+源码)_kaic
超市商品管理系统的设计与实现(论文+源码)_kaic
|
3天前
|
搜索推荐 数据挖掘 API
抖音商品详情API接口对电商的作用及收益
在电商快速发展的背景下,抖音作为全球领先的短视频平台,凭借其庞大的用户基础和高活跃度,通过商品详情API接口为电商行业开辟了新渠道。本文深入解析了抖音商品详情API接口的功能及其对电商的积极作用,包括商品信息实时同步、提升用户体验、精准营销、数据分析与优化等方面,展示了该接口如何帮助电商企业拓展销售渠道、优化商品策略、提升用户满意度、促进跨界合作与开发创新商业模式,为电商企业带来显著收益。同时,文章也探讨了实现这些收益的关键步骤及面临的挑战,强调了数据安全与隐私保护的重要性,以及创新和差异化竞争的必要性。
21 4
|
9天前
|
JSON 数据挖掘 API
电商信息指南:API接口淘宝关键词、店铺所有商品获取
要获取淘宝关键词商品数据和店铺所有商品的API接口,需先注册淘宝开放平台账号并创建应用,获取API密钥。接着,使用密钥获取访问令牌,详细阅读API文档,构造并发送API请求,解析响应数据。特别地,使用`item_search_shop`接口可获取店铺内所有商品信息。
|
4月前
|
小程序
商家店铺电商小程序模板源码
商家店铺电商小程序模板源码
49 5
|
5月前
|
前端开发 数据库
电商购物商城项目商品详情页设置
电商购物商城项目商品详情页设置
|
6月前
|
监控 数据挖掘 API
淘宝商品详情数据(商品分析,竞品分析,代购商城建站与跨境电商,ERP系统商品数据选品)
淘宝商品详情数据在多个业务场景中发挥着关键作用,以下是一些主要的应用场景
|
SQL 存储 前端开发
商品热销排行【项目 商城】
商品热销排行【项目 商城】
51 0
|
6月前
|
小程序 前端开发 数据管理
订水商城实战教程-06店铺信息
订水商城实战教程-06店铺信息
|
JavaScript 前端开发
37分布式电商项目 - 网站首页(广告展示)
37分布式电商项目 - 网站首页(广告展示)
40 1