首页 > 解决方案 > 如何在 Django 中不使用模型或身份验证来存储用户的购物车信息?

问题描述

我正在制作一个电子商务网站,我使用此视图允许用户在购物车中添加商品:

def add_to_cart(request, slug):
    if request.method == 'POST':
        item = get_object_or_404(Item, slug=slug)
        order_item = OrderedItems.objects.create(item=item, user=request.user, ordered=False)
        order_qs = Order.objects.filter(user=request.user, ordered=False)
        if order_qs.exists():
            order = order_qs[0]
            order_item.quantity = request.POST.get('number')
            order_item.save()
            order.items.add(order_item)
            return redirect('core:home')

        order = Order.objects.create(user=request.user, ordered=False)
        order.items.add(order_item)
        order_item.quantity = request.POST.get('number')
        order_item.save()
        return redirect('core:product_detail', slug=slug)

本网站中的模型和其他所有内容在很大程度上取决于用户身份验证。我跟踪哪个用户通过Order模型订购了哪些商品:

class OrderedItems(models.Model):
    item = models.ForeignKey(
        Item, on_delete=models.CASCADE, related_name='ordereditems')
    quantity = models.IntegerField(default=1)
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             on_delete=models.CASCADE)
    ordered = models.BooleanField(default=False)

那么,如何在不使用模型或使用 cookie 或会话进行身份验证的情况下存储用户的购物车信息?请用代码解释一下。

Github 链接到当前项目。

谢谢你

标签: pythondjango

解决方案


推荐阅读