Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在DRF中添加到购物车_Django_Python 3.x_Django Rest Framework - Fatal编程技术网

Django 如何在DRF中添加到购物车

Django 如何在DRF中添加到购物车,django,python-3.x,django-rest-framework,Django,Python 3.x,Django Rest Framework,我试图建立秩序: 型号.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)

我试图建立秩序:

型号.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)
 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'
              ]
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
序列化程序.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)
 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'
              ]
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
视图.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)
 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'
              ]
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
url.py:api endpint

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

我在这里感到困惑;我应该从序列化程序或视图中创建新的
order
对象吗

您应该重写AddToCartSerializer上创建的方法,以便将订单项添加到订单中


你可以在这里看到更多信息:

我仍然很困惑,你能详细说明一下吗