首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尺寸日期没有保存在cartitem模型中,但是产品正在保存。任何解决方案也如何保存大小数据?

尺寸日期没有保存在cartitem模型中,但是产品正在保存。任何解决方案也如何保存大小数据?
EN

Stack Overflow用户
提问于 2022-08-22 11:46:40
回答 2查看 109关注 0票数 -1

views.py

代码语言:javascript
复制
def add_to_cart(request, pk):

    variant = request.GET.get('variant')
    
    product = Product.objects.get(pk =pk)
    user = request.user
    cart , _ = Cart.objects.get_or_create(user = user, is_paid = False)
    cart_item = CartItem.objects.create(cart = cart , product = product ,)

    if variant:
        variant = request.GET.get('variant')
        size_variant = SizeVariant.objects.get(size_name = variant)
        color_variant = ColorVariant.objects.get(color_name = variant)
        cart_item.color_variant = color_variant
        cart_item.size_variant = size_variant
        cart_item.save()

    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

models.py

代码语言:javascript
复制
class CartItem(models.Model):
    cart = models.ForeignKey(Cart, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    color_variant = models.ForeignKey(ColorVariant, on_delete=models.CASCADE,null=True, blank=True)
    size_variant = models.ForeignKey(SizeVariant, on_delete=models.CASCADE ,null=True, blank=True)
    quantity = models.PositiveIntegerField(default=0)
    coupon = models.ForeignKey(Coupon, on_delete=models.SET_NULL, null=True, blank=True)

22/Aug/2022 16:17:38 "GET /account/add_to_cart/1/?variant= HTTP/1.1“302 0

XXX

16049.0

代码语言:javascript
复制
class SizeVariant(models.Model):
    size_name = models.CharField(max_length=100)
    price = models.IntegerField(default=0)

    def __str__(self):
        return self.size_name 

------------------------------------------------------------///////

EN

Stack Overflow用户

回答已采纳

发布于 2022-08-22 14:23:24

我不知道确切的问题,但我建议使用get_object_or_404(),并且直接使用create()创建实例,而不是先创建然后更新,所以尝试下面的视图:

代码语言:javascript
复制
def add_to_cart(request, pk):

    variant = request.GET.get('variant')
    
    product = get_object_or_404(Product,pk=pk)
    user = request.user
    cart , _ = Cart.objects.get_or_create(user = user, is_paid = False)

    if variant:
        size_variant = get_object_or_404(SizeVariant,size_name=variant)
        color_variant = get_object_or_404(ColorVariant,color_name=variant)
        CartItem.objects.create(cart = cart, product = product,color_variant=color_variant,size_variant=size_variant)

    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73444585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档