会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132385个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/Lambda表达式(旧) 7576楼
JAVA 全系列/预科阶段:职业规划/学习方法/程序员的基本素养和职业规划 7578楼
JAVA 全系列/第二十阶段:租房网(Spring Cloud最新架构)/Livegoods房屋海选平台 7581楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 7583楼
Python 全系列/第五阶段:数据库编程/redis 7584楼

# Create your views here.
from django.views import View

from goosapp.models import Category, Goods
from django.core.paginator import Paginator


class IndexView(View):
    def get(self, request, categoryid=2, num=1):
        categoryid = int(categoryid)
        num = int(num)
        # 获得所有商品的类别信息
        categoryList = Category.objects.all().order_by('id')

        # 获得某个类别下的所有商品信息
        goosList = Goods.objects.filter(category_id=categoryid).order_by('id')

        paginatorObj = Paginator(object_list=goosList, per_page=8)
        page_goods_obj = paginatorObj.get_page(num)

        # 分页页码
        start = num - math.ceil(10 / 2)
        if start < 1:
            start = 1
        end = start + 9
        if end > paginatorObj.num_pages:
            end = paginatorObj.num_pages
        if end < 10:
            start = 1
        else:
            start = end - 9
        page_list = range(start, end + 1)

        return render(request, 'index.html',
                      {'categroyList': categoryList, 'goodsList': page_goods_obj,
                       'categoryid': categoryid, 'page_list': page_list})


def commend(func):
    def _wrapper(detailView, request, good_id, *args, **kwargs):
        c_goodsid = request.COOKIES.get('c_goodsid', '')
        # 存放用户访问过的商品列表
        goodsIdList = [id for id in c_goodsid.split() if id.strip()]

        # 存放用户访问的商品对象列表
        goodsObList = [Goods.objects.get(id=gid) for gid in goodsIdList if gid != good_id and Goods.objects.get(id=gid).category_id == Goods.objects.get(id=good_id).category_id][:4]
        if good_id in goodsIdList:
            goodsIdList.remove(good_id)
            goodsIdList.insert(0, good_id)
        else:
            goodsIdList.insert(0, good_id)

        response = func(detailView, request, good_id, recommend_list=goodsObList, *args, **kwargs)

        response.set_cookie('c_goodsid', ' '.join(goodsIdList), max_age=3 * 24 * 60 * 60)

        return response

    return _wrapper




class DetailView(View):
    @commend
    def get(self, request, good_id, recommend_list=[]):
        goodid = int(good_id)

        try:
            goods = Goods.objects.get(id=goodid)
            return render(request, 'detail.html', {'goods': goods, 'recommendli': recommend_list})
        except Goods.DoesNotExist:
            return Http404

老师,这个错误,怎么解决c50a2a2736161cc5fa72c0cb61719d0.png

Python 全系列/下架-第十二阶段:Python_大型电商项目(5天后下架)/Django项目阶段-电商项目(旧) 7586楼
JAVA 全系列/第一阶段:JAVA 快速入门/变量、数据类型、运算符 7587楼
Python 全系列/第一阶段:Python入门/序列 7588楼
JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 7589楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 7590楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637