Django Rest框架中的购物车和购物车项目关系

Django Rest框架中的购物车和购物车项目关系,django,django-rest-framework,Django,Django Rest Framework,在Django Rest框架中,我如何连接Item中的“cart”,而不直接询问它?我正在发送{“产品”:1,“数量”:1},但是它要求发送“购物车”。我不知道如何使DRF在连接到购物车时自动解析它。因为您使用了ModelSerializer并在ItemSerializer内的字段列表中定义购物车。序列化程序验证方法基于模型检查数据。您可以找到详细信息谢谢您的帮助,但我真的很难理解。好的,我会尽量提供更多详细信息。Django序列化程序类默认具有validate方法。您可以覆盖它以添加自定义验证

在Django Rest框架中,我如何连接Item中的“cart”,而不直接询问它?我正在发送{“产品”:1,“数量”:1},但是它要求发送“购物车”。我不知道如何使DRF在连接到购物车时自动解析它。

因为您使用了ModelSerializer并在ItemSerializer内的字段列表中定义购物车。序列化程序验证方法基于模型检查数据。您可以找到详细信息

谢谢您的帮助,但我真的很难理解。好的,我会尽量提供更多详细信息。Django序列化程序类默认具有validate方法。您可以覆盖它以添加自定义验证。它将比较数据和模型类。例如,如果您的模型中有一个IntegerField,并且您为此字段发送了一个字符串,则会引发验证错误。若模型中并没有可为null的字段,并且并没有为此字段发送任何数据,那个么它会再次引发异常。其实很简单。在请求之间如何跟踪购物车?
models.py

class Cart(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE,related_name="cart")
    create_date = models.DateTimeField(auto_now_add=True)

class Item(models.Model):
    cart = models.ForeignKey(Cart, on_delete=models.CASCADE,related_name='items')
    product = models.ForeignKey(Product, on_delete=models.CASCADE,related_name='product')
    quantity = models.IntegerField(default=1)
serializers.py

class CartSerializer(serializers.ModelSerializer):
    class Meta:
        model = Cart
        fields = ['user','status']


class ItemSerializer(serializers.ModelSerializer):
    cart = CartSerializer()
    class Meta:
        model = Item
        fields = ['cart', 'product', 'quantity']
urls.py

urlpatterns = [
    path('add/', AddItem.as_view(),name='add'),
]
views.py

class AddItem(CreateAPIView):
    serializer_class = ItemSerializer
    permission_classes = [IsAuthenticated]