必须对响应内容进行渲染,然后才能对其进行迭代 Django Rest框架

问题描述

我有一个Cart模型和Cartserializer。我正在尝试这样做,如果购物车中存在购物车缺陷,然后通过增加购物车的数量来更新购物车。我为此做了很多尝试。但这每次每次 都必须生成一个错误,然后才能对响应内容进行迭代

这是我的代码:)

views.py *

class CartViewSet(viewsets.ModelViewSet):
    serializer_class = CartSerializer
    permission_classes = (IsAuthenticated,)
    def get_queryset(self):
        user = self.request.user
        if user.is_authenticated:
            if user is not None:
                if user.is_active and user.is_superuser or user.is_Customer:
                    return Cart.objects.all()
                raise PermissionDenied()
            raise PermissionDenied()
        raise PermissionDenied()
    filter_backends = [DjangoFilterBackend]
    filterset_fields = ['date_created','user']
    @action(detail=False)
    def count(self,request):
        queryset = self.filter_queryset(self.get_queryset())
        count = queryset.count()
        content = {'count': count}
        return Response(content)
        
    def create(validated_data,get):
        quantity,created = Cart.objects.update_or_create(
            user = validated_data.get('user',None),defects=validated_data.get('defects',defaults={'quantity': validated_data.get('quantity' + str(1),None)})
        return quantity
        if quantity is created.create:
            return Response ({
                'status' : True,"detail" : "created"
            })
        if quantity is created.update:
            return Response ({
                'status' : True,"detail" : "updated"
            })

models.py

from django.db import models
from accounts.models import User,SubCategory

# Create your models here.

class Cart(models.Model):
    user = models.ForeignKey('accounts.User',related_name="carts",null=True,on_delete=models.SET_NULL)
    quantity = models.IntegerField(default=1)
    service = models.ForeignKey('accounts.SubCategory',on_delete=models.SET_NULL)
    defects = models.ForeignKey('defects',on_delete=models.SET_NULL)
 
    price = models.IntegerField(default=False)
    date_created = models.DateTimeField(auto_Now_add=True)
    total = models.IntegerField(blank=True,null=True)    

    def __str__(self):
        return self.user.username

serializers.py

from rest_framework import serializers
class CartSerializer(serializers.ModelSerializer):
    class Meta:
        model = Cart
        fields = ['id','url','user','service','defects','date_created','quantity','price','total']

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)