开源web框架django知识总结(十八)

本文总结了Django框架下商品详情页的构成,包括频道分类、面包屑导航、热销排行等,并介绍了统计分类商品访问量的模型设计。此外,还详细讲解了用户浏览记录的存储方案,如存储数据、位置、类型和逻辑,以及如何保存和查询这些记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开源web框架django知识总结(十八)

商品详情页

商品详情页分析和准备

1. 商品详情页组成结构分析

1.商品频道分类

  • 封装在goods.utils.py文件中,直接调用方法即可。
from .models import GoodsCategory,GoodsChannel,SKUSpecification,SKU,SPUSpecification,SpecificationOption
from copy import deepcopy

def get_categories():
    # 模版参数categories是首页分类频道
    categories = {
   }

    # 获取首页所有的分类频道数据
    channels = GoodsChannel.objects.order_by(
        'group_id',
        'sequence'
    )
    # 遍历所有是分类频道,构建以组号作为key的键值对
    for channel in channels:
        # channel: GoodsChannel对象
        if channel.group_id not in categories:
            categories[channel.group_id] = {
   
                'channels': [],  # 当前分组中的分类频道(一级分类)
                'sub_cats': []  # 二级分类
            }
        # (1)、填充当前组中的一级分类
        cat1 = channel.category
        categories[channel.group_id]['channels'].append({
   
            'id': cat1.id,
            'name': cat1.name,
            'url': channel.url
        })

        # (2)、填充当前组中的二级分类
        cat2s = GoodsCategory.objects.filter(parent=cat1)
        for cat2 in cat2s:
            # cat2:二级分类对象

            cat3_list = []  # 每一次遍历到一个二级分类对象的时候,初始化一个空列表,用来构建三级分类
            cat3s = GoodsCategory.objects.filter(parent=cat2)
            # (3)、填充当前组中的三级分类
            for cat3 in cat3s:
                # cat3;三级分类对象
                cat3_list.append({
   
                    'id': cat3.id,
                    'name': cat3.name
                })

            categories[channel.group_id]['sub_cats'].append({
   
                'id': cat2.
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主打Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值