简体   繁体   English

如何在 DRF 中添加到购物车

[英]How to add to cart in DRF

I am trying to create order:我正在尝试创建订单:

models.py :模型.py

class OrderItem(models.Model):
      image_number = models.CharField(max_length=20)
      title = models.CharField(max_length=20)
      image_size = models.CharField(max_length=50)
      file_type = models.CharField(max_length=20)
      price = models.CharField(max_length=50)

      def __str__(self):
          return self.title

class Order(models.Model):
      user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
      items = models.ManyToManyField(OrderItem)
      start_date = models.DateTimeField(auto_now_add=True)
      ordered_date = models.DateTimeField()
      ordered = models.BooleanField(default=False)

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

serializers.py :序列化程序.py

 class AddtocartSerializers(serializers.ModelSerializer):
       class Meta:
             model = OrderItem
             fields = ['image_number','title','image_size','file_type','price']

class CartSerializers(serializers.ModelSerializer):
      class Meta:
            model = Order
            fields = ['item',
                'start_date',
               'ordered_date'
              ]

views.py :视图.py

class AddtocartView(viewsets.ModelViewSet):
      authentication_classes = []
      permission_classes = []
      pagination_class = None
      queryset=OrderItem
      serializer_class = AddtocartSerializers

class CartView(viewsets.ModelViewSet):
      authentication_classes = []
      permission_classes = []
      pagination_class = None
      queryset=Order.objects.all()
      serializer_class = CartSerializers

urls.py : api endpint urls.py : api endpint

 path('addtocart/',views.AddtocartView.as_view({'get':'list'}),name='addtocart'),
 path('cart/',views.CartView.as_view({'get':'list'}),name='cart'),

I am confused here;我在这里很困惑; should I create new order objects from serialzers or views?我应该从序列化器或视图创建新的order对象吗?

You should override the created method on the AddtocartSerializers to add the order item to the order.您应该覆盖 AddtocartSerializers 上的 created 方法以将订单项添加到订单中。

You can see more information about it here: https://www.django-rest-framework.org/api-guide/serializers/#writing-create-methods-for-nested-representations您可以在此处查看更多信息: https : //www.django-rest-framework.org/api-guide/serializers/#writing-create-methods-for-nested-representations

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM