Beispiel #1
0
def index(request):
    # 主页
    # 拿出所有的分类
    category_list = CategoryModel.objects.all()
    # 分别取出分类下的最新的商品
    new_goods_dict = {} #存储每个分类下的最新的商品
    for category in category_list:
        # 直接通过商品分类id从goods中获取当前分类的商品
        goods_info_list = GoodsModel.objects.filter(category_id=category.id).order_by('id')[:4]
        # goods_list = CategoryGoodsModel.objects.filter(category_id=category.id).order_by('-goods_id')[:4]
        #拿到查询出的所有的goods的id
        # goods_ids = [goods.goods_id for goods in goods_list]
        # goods_info_list = GoodsModel.objects.filter(id__in=goods_ids)

        new_goods_dict[category]=goods_info_list

    # 从session中拿到user的id
    # user_id = request.session.get('user_id',0)
    # cart_list = CartModel.objects.filter(user_id=user_id)
    # cart_count = 0
    # 统计出购物车中所有的商品数量
    # for cart in cart_list:
    #     cart_count += cart.count
    cart_count = cart_count_goods(request,CartModel)
    context = {
        'new_goods_dict':new_goods_dict,
        'cart_count':cart_count
    }
    return render(request,'goods/index.html',context)
Beispiel #2
0
def list(request,category_id,sort,page_num):
    """商品列表视图"""
    """category_id: 分类的id
        page_num: 获取当前页的页码
        sort: 排序字段(默认: default,价格: price,人气: popular)"""
    category = CategoryModel.objects.get(id=category_id)
    # 取该类型最新的两个商品
    news = GoodsModel.objects.filter(category_id=category_id).order_by('-id')[:2]
    # 外键的用法
    # news = category.goodsmodel_set.order_by('-id')[:2]
    goods_list = []
    if sort == 'default': # 默认排序, 最新的在上面
        goods_list = GoodsModel.objects.filter(category_id=category_id).order_by('-id')
    elif sort == 'price': # 价格排序
        goods_list = GoodsModel.objects.filter(category_id=category_id).order_by('-price')
    elif sort == 'popular': # 按人气排序
        goods_list = GoodsModel.objects.filter(category_id=category_id).order_by('-popular')

    # 根据商品的列表goods_list 进行分页
    paginator = Paginator(goods_list,2)
    page = paginator.page(page_num)


    cart_count = cart_count_goods(request,CartModel)
    context = {
        'category':category, # 商品的分类对象
        'news':news,  # 新品推荐
        'goods_list':goods_list, # 排序后的商品列表
        'sort':sort,  # 排序的条件
        'cart_count':cart_count, # 购物车中的商品数量
        'page':page,
        'page_num':page_num  #当前的页数
    }
    return render(request,'goods/list.html',context)
Beispiel #3
0
 def extra_context(self):
     news = GoodsModel.objects.all().order_by('-id')[:2]
     goods_name = self.request.GET.get('q')
     page_num = self.request.GET.get('page')
     # search_goods = GoodsModel.objects.filter(goods_name__iregex=".*?".join(list(goods_name)))
     sort = self.request.GET.get('sort', "default")
     if sort in ['price', 'popular']:
         list_goods = self.results.order_by('-' + sort)
     else:
         sort = 'default'
         list_goods = self.results.order_by('-' + 'id')
     paginator = Paginator(list_goods, 2)
     try:
         page = paginator.page(page_num)
     except EmptyPage:
         page = paginator.page(paginator.num_pages)
     except PageNotAnInteger:
         page = paginator.page(1)
     context = {
         'cart_count': cart_count_goods(self.request, CartModel),
         'goods_name': goods_name,
         'my_page': page,
         'my_paginator': paginator,
         'sort': sort,
         'page_num': page_num,
         'news': news
     }
     return context
Beispiel #4
0
def detail(request, goods_id):
    """某个商品的详细信息,goods id是具体的某个商品"""
    goods = GoodsModel.objects.get(id=goods_id)
    goods.popular = goods.popular + 1
    goods.save()
    news = goods.category.goodsmodel_set.order_by("-id")[:2]
    # 记录最近的浏览记录,在用户中心使用
    # 判断是否已经登录
    if request.session.has_key("user_id"):
        user_id = request.session.get("user_id")
        goods_id_list = request.session.get(str(user_id), [])
        if not goods_id_list:  # 判断是否有浏览记录
            goods_id_list.append(goods.id)
        else:
            # 如果已经存在过浏览的商品大于5个时 删除一个
            if goods_id in goods_id_list:
                goods_id_list.remove(goods_id)
            # 添加元素到列表的第一个
            goods_id_list.insert(0, goods_id)
            # 判断是否超过五个记录,超过删除最后一个
            if len(goods_id_list) > 5:
                del goods_id_list[-1]
        request.session[user_id] = goods_id_list
    cart_count = cart_count_goods(request, CartModel)
    categorys = CategoryModel.objects.all()
    return render(request, "df_goods/detail.html", {"goods": goods, "news": news, "cart_count": cart_count, 'categorys': categorys})
Beispiel #5
0
def index(request):
    """主页"""
    # 拿出所有的分类
    category_list = CategoryModel.objects.all()
    # 分别取出分类下的最新商品

    new_goods_dict = {}  #存储每个分类下的最新的商品
    for category in category_list:
        # 修改了商品model之后的逻辑
        # 直接通过商品分类id从goods中获取当前分类的商品
        goods_list = GoodsModel.objects.filter(
            category_id=category.id).order_by('id')[:4]
        # goods_list=CategoryGoodsModel.objects.filter(category_id=category.id).order_by('-goods_id')[:4]
        # 拿到查询出的所有的goods的id
        # goods_ids=[goods.goods_id for goods in goods_list]
        # goods_info_list= GoodsModel.objects.filter(id__in=goods_ids)
        new_goods_dict[category] = goods_list

    # 从session中拿到user的id
    cart_count = cart_count_goods(request, CartModel)
    context = {
        'new_goods_dict': new_goods_dict,
        'cart_count': cart_count,
    }
    return render(request, 'goods/index.html', context)
Beispiel #6
0
def detail(request, goods_id):
    """某个商品的详细信息 goods_id是具体的某个商品"""
    goods = GoodsModel.objects.get(id=goods_id)
    goods.popular = goods.popular + 1  # 增加商品的人气值
    goods.save()
    # news = GoodsModel.objects.filter(category_id=goods.category_id).order_by("-id")[:2]
    # 利用orm外键的特性
    news = goods.category.goodsmodel_set.order_by("-id")[:2]

    # 购物车内商品的数量
    cart_count = cart_count_goods(request, CartModel)

    # 记录最近的浏览记录,在用户中心使用
    # 判断是否已经登陆
    if request.session.has_key("user_id"):
        user_id = str(request.session.get("user_id"))
        goods_id_list = request.session.get(user_id, [])
        if not goods_id_list:  # 判断是否有浏览记录
            goods_id_list.append(goods.id)
        else:
            # 如果已经存在过浏览的商品,删除掉这一个
            if goods_id in goods_id_list:
                goods_id_list.remove(goods_id)
            goods_id_list.insert(0, goods_id)  # 添加元素到列表的第一个
            if len(goods_id_list) > 5:  # 如果超过5个浏览记录删除最后一个
                del goods_id_list[-1]
        # 把最近浏览的商品存储在session中 以user_id的值为key
        request.session[user_id] = goods_id_list
    return render(request, "goods/detail.html", {
        "goods": goods,
        "news": news,
        "cart_count": cart_count
    })
Beispiel #7
0
def detail(request,goods_id):
    """商品详细信息"""
    goods = GoodsModel.objects.get(id=goods_id)
    goods.popular = goods.popular + 1  # 增加商品的人气值
    goods.save()
    # 利用orm外键的特性
    news = goods.category.goodsmodel_set.order_by('-id')[:2]
    cart_count = cart_count_goods(request)

    # 记录用户最近的浏览记录
    # 判断是否有用户登录
    if request.session.has_key('user_id'):
        user_id = str(request.session.get('user_id'))
        goods_id_list = request.session.get(user_id,[])
        if not goods_id_list:
            goods_id_list.append(goods.id)
        else:
            # 判断之前是否存在该商品的记录
            if goods_id in goods_id_list:
                goods_id_list.remove(goods_id)
            goods_id_list.insert(0,goods_id)
            if len(goods_id_list) > 6:  # 如果超过5个浏览记录 删除最后一个
                del goods_id_list[-1]
        # 把最近的浏览记录存储到session中 以user_id为key
        request.session[user_id] = goods_id_list

    return render(request,'goods/detail.html',{'goods':goods,'news':news,'cart_count':cart_count})
Beispiel #8
0
def detail(request, goods_id):
    # 某个商品的详细信息 goods_id 是具体的某个商品

    goods = GoodsModel.objects.get(id=goods_id)
    goods.popular = goods.popular + 1  #增加商品的人气值
    goods.save()
    # 利用orm外键的特性
    news = goods.category.goodsmodel_set.order_by('-id')[:2]
    # 购物车中商品数量
    cart_count = cart_count_goods(request, CartModel)

    # 记录最近的浏览记录,在用户中心使用
    # 判断是否已经登陆
    if request.session.has_key('user_id'):
        user_id = request.session.get('user_id')
        goods_id_list = request.session.get(str(user_id), [])

        if not goods_id_list:  #判断是否有浏览记录
            goods_id_list.append(goods.id)
        else:
            # 如果已经存在过浏览的商品 删除掉这一个
            if goods_id in goods_id_list:
                goods_id_list.remove(goods_id)
            goods_id_list.insert(0, goods_id)  # 添加元素到列表的第一个
            if len(goods_id_list) > 5:
                del goods_id_list[-1]  #如果超过五个浏览记录 删除最后一个
        # 把最近浏览的商品存储在session中 以user_id的值为key
        request.session[user_id] = goods_id_list
    return render(request, 'goods/detail.html', {
        "goods": goods,
        'news': news,
        'cart_count': cart_count
    })
Beispiel #9
0
def index(request):
    """首页"""
    # 拿出所有的分类
    category_list = CategoryModel.objects.all()
    # 分别取出分类下的最新商品
    new_goods_dict = {}  # 用来存储每个分类下的最新商品
    for category in category_list:
        goods_info_list = GoodsModel.objects.filter(category_id=category.id).order_by("-id")[:4]
        # apple_list = GoodsModel.objects.filter(category_id=category.id, )
        new_goods_dict[category] = goods_info_list
    cart_count = cart_count_goods(request, CartModel)
    if not cart_count:
        cart_count = 0
    return render(request, "index.html", {"new_goods_dict": new_goods_dict, "category_list": category_list, "cart_count": cart_count})
Beispiel #10
0
def index(request):
    """主页"""
    # 拿出所有的分类
    category_list = CategoryModel.objects.all()
    # 分别取出分类下的最新的商品
    new_goods_dict = {}
    for category in category_list:
        # goods_list = CategoryGoodsModel.objects.filter(category_id=category.id).order_by("-goods_id")[:4]
        goods_list = GoodsModel.objects.filter(
            category_id=category.id).order_by("-id")[:4]
        new_goods_dict[category] = goods_list
    context = {
        "new_goods_dict": new_goods_dict,
        "cart_count": cart_count_goods(request, CartModel)
    }
    return render(request, 'goods/index.html', context)
Beispiel #11
0
    def extra_context(self):
        """重写附加内容的函数"""
        # 获取所有的商品类别
        category_list = CategoryModel.objects.all()
        news = []  # 存储每个分类下2个最新商品
        for category in category_list:
            goods_list = GoodsModel.objects.filter(category_id=category.id).order_by('-id')[:2]
            news.extend(goods_list)

        # 统计购物车中商品的数量
        cart_count = cart_count_goods(self.request, CartModel)
        context = {
            'news': [random.choice(news),random.choice(news)],
            'cart_count': cart_count,
            'sort':self.request.GET.get('sort','id')
        }
        return context
Beispiel #12
0
def add(request,goods_id,count):
    user_id =request.session['user_id']
    # 查询购物车中是否已经有
    carts =CartModel.objects.filter(user_id=user_id,goods_id=goods_id)
    if len(carts)>=1:
        cart = carts[0]
        cart.count = cart.count + count

    else:
        cart=CartModel()
        cart.user_id=user_id
        cart.goods_id=goods_id
        cart.count=count
    cart.save()
    # 如果是Ajax请求则返回一段json否则转向购物车
    if request.is_ajax():
        cart_count=cart_count_goods(request,CartModel)
        return JsonResponse({'cart_count':cart_count})
    return redirect('/cart/')
Beispiel #13
0
def detail(request, goods_id):
    """某个商品的详细信息 goods_id"""
    goods = GoodsModel.objects.get(id=goods_id)
    goods.popular += 1
    goods.save()
    news = goods.category.goodsmodel_set.order_by("-id")[:2]
    # 查看商品的评论
    comments = CommentModel.objects.filter(goods_id=goods_id).order_by('-id')

    context = {
        "goods": goods,
        "news": news,
        'cart_count': cart_count_goods(request, CartModel),
        'comments': comments
    }
    # 记录最近的浏览记录, 在用户中心使用
    # 判断是否已经登录
    if request.session.has_key('user_id'):
        user_id = request.session.get('user_id')

        # 判断登录用户是否购买过该商品

        buy_goods = OrderGoodsModel.objects.filter(goods_id=goods_id)
        if buy_goods:
            for goods in buy_goods:
                order_id = goods.order_id
                order = OrderModel.objects.get(id=order_id)
                if order.user_id == user_id:
                    is_buy = True
                    break
                else:
                    is_buy = False
        else:
            is_buy = False
        context.update({"is_buy": is_buy})
        goods_id_list = (request.session.get(str(user_id), []))
        if len(goods_id_list) >= 5:
            goods_id_list.pop()
        if goods_id in goods_id_list:
            goods_id_list.remove(goods_id)
        goods_id_list.insert(0, goods_id)
        request.session[str(user_id)] = goods_id_list
    return render(request, "goods/detail.html", context)
Beispiel #14
0
def good_list(request, category_id, sort, page_num):
    """商品列表视图
        category_id : 分类id
        sort :排序字段(默认:default, 价格:price,人气:popular)
    """
    category = CategoryModel.objects.get(id=category_id)
    # 取该类型最新的两个商品
    news = GoodsModel.objects.filter(
        category_id=category_id).order_by('-id')[:2]
    # 外键的用法
    # news = category.goodsmodel_set.order_by("-id")[:2]
    # if sort == 'default':
    #     goods = GoodsModel.objects.filter(category_id=category_id).order_by('-id')
    # elif sort == 'price':
    #     goods = GoodsModel.objects.filter(category_id=category_id).order_by('-price')
    # else:
    #     goods = GoodsModel.objects.filter(category_id=category_id).order_by('-popular')
    if sort in ['price', 'popular']:
        list_goods = GoodsModel.objects.filter(
            category_id=category_id).order_by('-' + sort)
    else:
        sort = 'default'
        list_goods = GoodsModel.objects.filter(
            category_id=category_id).order_by('-' + 'id')
    paginator = Paginator(list_goods, 1)
    try:
        page = paginator.page(page_num)
    except EmptyPage:
        page = paginator.page(paginator.num_pages)
    except PageNotAnInteger:
        page = paginator.page(1)

    context = {
        "category": category,
        "news": news,
        "list_goods": list_goods,
        "sort": sort,
        'cart_count': cart_count_goods(request, CartModel),
        "page_num": page_num,
        "page": page,
    }
    return render(request, 'goods/list.html', context)
Beispiel #15
0
def index(request):
    """主页"""
    # 拿出所有的分类
    category_list = CategoryModel.objects.all()
    # 分别取出分类下的最新的商品
    new_goods_dict = {}  # 存储每个分类下的最新的商品
    for category in category_list:
        goods_list = CategoryGoodsModel.objects.filter(
            category_id=category.id).order_by("-goods_id")[:4]
        # 拿到查询出的所有的goods的id
        goods_ids = [goods.goods_id for goods in goods_list]
        print(goods_ids)
        goods_info_list = GoodsModel.objects.filter(id__in=goods_ids)
        print(goods_info_list)
        new_goods_dict[category] = goods_info_list

    cart_count = cart_count_goods(request, CartModel)
    context = {"new_goods_dict": new_goods_dict, "cart_count": cart_count}
    print(context)
    return render(request, "goods/index.html", context)
Beispiel #16
0
def add(request,goods_id,count):
    """添加到购物车视图,接收两个参数,商品id: goods_id,商品数量: count"""
    user_id = request.session['user_id']

    # 查询购物车中是否有这个商品在这个人的名下,如果有数量增加,否则在购物车中新建一个商品
    carts = CartModel.objects.filter(user_id=user_id,goods_id=goods_id)
    if len(carts)>=1:
        cart = carts[0]
        cart.count = cart.count + count
    else:
        cart = CartModel()
        cart.user_id = user_id
        cart.goods_id = goods_id
        cart.count = count
    cart.save()
    # 如果是ajax请求, 则返回一个json,否则转向购物车
    if request.is_ajax():
        cart_count = cart_count_goods(request,CartModel)
        return JsonResponse({'cart_count':cart_count})
    return redirect('/cart/')
Beispiel #17
0
def add(request, goods_id, count):
    user_id = request.session.get("user_id")

    # 查询购物车中是否已经有这个商品在这个人的名下,如果有,那么增加商品的数量,如果没有,新建一个
    carts = CartModel.objects.filter(user_id=user_id, goods_id=goods_id)
    if len(carts) >= 1:
        cart = carts[0]
        cart.count = cart.count + count
    else:
        cart = CartModel()
        cart.user_id = user_id
        cart.count = count
        cart.goods_id = goods_id
    cart.save()

    # 如果是ajax请求则返回一个json,否则跳转到购物车
    if request.is_ajax():
        cart_count = cart_count_goods(request, CartModel)
        return JsonResponse({"cart_count": cart_count})
    return redirect(reverse("cart:cart"))
Beispiel #18
0
def add(request, goods_id, count):
    """添加到购物车视图, 接收两个参数,商品id:goods_id, 商品数量:count"""
    user_id = request.session['user_id']

    # 查询购物车中是否已经有这个商品在这个人的名下,如果有数量增加,否则在购物车中新建一个商品
    carts = CartModel.objects.filter(user_id=user_id, goods_id=goods_id)
    if len(carts) >= 1:
        cart = carts[0]
        cart.count = cart.count + count
    else:
        cart = CartModel()
        cart.user_id = user_id
        cart.goods_id = goods_id
        cart.count = count
    cart.save()

    # 如果是ajax请求则返回一个json, 否则转向购物车
    if request.is_ajax():
        cart_count = cart_count_goods(request, CartModel)
        return JsonResponse({"cart_count": cart_count})
    return redirect("/cart/")
Beispiel #19
0
def list(request, category_id, sort, page_num):
    """商品列表视图"""
    """category_id: 分类的id
       page_num: 获取当前页的页码
       sort: 排序字段(默认:default, 价格:price, 人气: popular)"""
    category = CategoryModel.objects.get(id=category_id)

    # 取该类型最新的两个商品
    news = GoodsModel.objects.filter(
        category_id=category_id).order_by("-id")[:2]
    # 外键的用法
    # news = category.goodsmodel_set.order_by("-id")[:2]\
    goods_list = []
    if sort == "default":  # 默认排序,最新在上面
        goods_list = GoodsModel.objects.filter(
            category_id=category_id).order_by("-id")
    elif sort == "price":  # 按价格排序
        goods_list = GoodsModel.objects.filter(
            category_id=category_id).order_by("-price")
    elif sort == "popular":  # 按人气排序
        goods_list = GoodsModel.objects.filter(
            category_id=category_id).order_by("-popular")

    # 根据商品的列表goods_list 进行分页
    paginator = Paginator(goods_list, 2)
    page = paginator.page(page_num)

    cart_count = cart_count_goods(request, CartModel)
    context = {
        "category": category,  # 商品的分类对象
        "news": news,  # 新品推荐
        "goods_list": goods_list,  # 排序后的商品列表
        "sort": sort,  # 排序的条件
        "cart_count": cart_count,  # 购物车中的商品数量
        "page": page,
        "page_num": page_num,  # 当前的页数
    }

    return render(request, "goods/list.html", context)
Beispiel #20
0
def list(request, category_id, sort, page_num):
    """商品列表试图"""
    """category_id:分类的id
    page_num:获取当前页的页码
    sort:排序的字段(默认的字段:default,价格:price,人气:popular)
    """
    category = CategoryModel.objects.get(id=category_id)
    # 区该类型的最新的商品
    news = GoodsModel.objects.filter(
        category_id=category_id).order_by('-id')[:2]
    goods_list = []
    if sort == 'default':  #默认排序  最新在上面
        # if order_by == 0:
        #     goods_list=GoodsModel.objects.filter(category_id=category_id).order_by(('id'))
        # else:
        goods_list = GoodsModel.objects.filter(
            category_id=category_id).order_by(('-id'))
    elif sort == 'price':  #按价格排序
        goods_list = GoodsModel.objects.filter(
            category_id=category_id).order_by('-price')
    elif sort == 'popular':  #按人气排序
        goods_list = GoodsModel.objects.filter(
            category_id=category_id).order_by('-popular')

    # 根据商品的列表goods_list进行分页
    paginator = Paginator(goods_list, 2)
    page = paginator.page(page_num)
    cart_count = cart_count_goods(request, CartModel)
    context = {
        'category': category,  #商品的分类对象
        'news': news,  #新品推荐
        'goods_list': goods_list,  #排序后的商品列表
        'sort': sort,  #排序的条件
        'cart_count': cart_count,  #购物车中的商品的数量
        'page': page,
        'page_num': page_num,  #当前的页数
    }

    return render(request, 'goods/list.html', context)
Beispiel #21
0
def add(request, goods_id, count):
    """添加到购物车视图 接收两个参数 商品id和商品数量"""
    user_id = request.session['user_id']

    # 查询购物车中是否已经有这个商品在这个人的名下 如果有 数量增加  如果没有 在购物车中添加
    carts = CartModel.objects.filter(user_id=user_id, goods_id=goods_id)
    if len(carts) >= 1:
        cart = carts[0]
        cart.count = cart.count + count
    else:
        cart = CartModel()
        cart.user_id = user_id
        cart.goods_id = goods_id
        cart.count = count
    cart.save()

    # 如果是ajax请求 则返回一个json 否则重定向
    if request.is_ajax():
        cart_count = cart_count_goods(request)
        return JsonResponse({'cart_count': cart_count})

    return redirect('/cart/')
Beispiel #22
0
def list(request,category_id,sort,page_num):
    """商品列表视图"""
    """category_id 分类id    
        sort 排序字段(默认:default 价格:price 人气:popular)
        page_num 获取当前页的页码"""

    category = CategoryModel.objects.get(id=category_id)
    # 取出该类型中最新的两个商品
    news = GoodsModel.objects.filter(category_id=category_id).order_by('-id')[:2]
    # 使用外键查找
    # news = category.goodsmodel_set.order_by('-id')[:2]

    goods_list = []
    if sort == 'default':
        goods_list = GoodsModel.objects.filter(category_id=category_id).order_by('id')
    elif sort == 'price':
        goods_list = GoodsModel.objects.filter(category_id=category_id).order_by('price')
    elif sort == 'popular':
        goods_list = GoodsModel.objects.filter(category_id=category_id).order_by('-popular')

    cart_count = cart_count_goods(request)

    # 根据商品的列表goods_list进行分页
    paginator = Paginator(goods_list,2)
    page = paginator.page(page_num)

    context = {
        'category':category, # 商品的分类对象
        'news':news,  # 新品推荐
        'goods_list':goods_list, # 排序后的商品列表
        'sort':sort,  # 排序的条件
        'cart_count':cart_count,  # 购物车中的商品数量
        'page':page,  # 分页信息
        'page_num':page_num  # 当前页码
    }

    return render(request,'goods/list.html',context)
Beispiel #23
0
def goods_list(request, category_id, sort, page_num):
    """商品列表视图"""
    """
    category_id 分类的id
    page_num 获取当前页的页码
    sort 排序的字段 默认:default 价格:price 人气:popular
    """
    category = CategoryModel.objects.get(id=category_id)
    categorys = CategoryModel.objects.all()
    # 取该类型的最新的两个商品
    news = GoodsModel.objects.filter(category_id=category_id).order_by("-id")[:2]

    goods_list = []
    goods_query_set = GoodsModel.objects.filter(category_id=category_id)
    if sort == "default":  # 默认排序 最新的在上面
        goods_list = goods_query_set.order_by("-id")
    elif sort == "price":
        goods_list = goods_query_set.order_by("-price")
    elif sort == "popular":
        goods_list = goods_query_set.order_by("-popular")

    # 根据商品的列表goods_list,进行分页
    paginator = Paginator(goods_list, 3)
    page = paginator.page(page_num)

    cart_count = cart_count_goods(request, CartModel)
    context = {
        "category": category,
        "categorys": categorys,
        "news": news,
        "sort": sort,
        "goods_list": goods_list,
        "page": page,
        "page_num": int(page_num),
        "cart_count": cart_count,
    }
    return render(request, "df_goods/list.html", context)
Beispiel #24
0
def index(request):
    """主页"""
    # 拿出所有的分类
    category_list = CategoryModel.objects.all()
    # 分别取出每个分类下最新的商品
    new_goods_dict = {}  # 存储每个分类下的最新商品
    for category in category_list:
        goods_list = GoodsModel.objects.filter(category_id=category.id).order_by('-id')[:4]
        new_goods_dict[category] = goods_list

        # goods_list = CategoryGoodsModel.objects.filter(category_id=category.id).order_by('-goods_id')[:4]
        # # 拿到查询出的所有的goods的id
        # goods_ids = [goods.goods_id for goods in goods_list]
        # goods_info_list = GoodsModel.objects.filter(id__in=goods_ids)
        # new_goods_dict[category] = goods_info_list

    cart_count = cart_count_goods(request)

    context = {
        'new_goods_dict':new_goods_dict,
        'cart_count':cart_count
    }

    return render(request,'goods/index.html',context)
Beispiel #25
0
def index(request):
    """主页"""
    # 拿出所有的分类
    category_list = CategoryModel.objects.all()
    # 分别取出分类下的最新的商品
    new_goods_dict = {}  # 存储每个分类下的最新的商品
    for category in category_list:
        # goods_list = CategoryGoodsModel.objects.filter(category_id=category.id).order_by("-goods_id")[:4]
        # 拿到查询出的所有的goods的id
        # goods_ids = [goods.goods_id for goods in goods_list]
        # print(goods_ids)
        # 修改了商品model之后的逻辑
        # 直接通过商品分类id从goods中获取当前分类的商品
        goods_info_list = GoodsModel.objects.filter(
            category_id=category.id).order_by("-id")[:4]
        print(goods_info_list)
        new_goods_dict[category] = goods_info_list

    # 从session中拿到user的id
    cart_count = cart_count_goods(request, CartModel)

    context = {"new_goods_dict": new_goods_dict, "cart_count": cart_count}
    print(context)
    return render(request, "goods/index.html", context)