Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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
Python 如何在Django中为我的客户和订单模型创建ModelViewSet?_Python_Django_Django Rest Framework - Fatal编程技术网

Python 如何在Django中为我的客户和订单模型创建ModelViewSet?

Python 如何在Django中为我的客户和订单模型创建ModelViewSet?,python,django,django-rest-framework,Python,Django,Django Rest Framework,所以我有一个客户模型 class Customer(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) email = models.EmailField() address = models.CharField(max_length=250) postal_code = models.CharFiel

所以我有一个客户模型

class Customer(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    email = models.EmailField()
    address = models.CharField(max_length=250)
    postal_code = models.CharField(max_length=20)
    city = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    class Meta:
        ordering = ('-created',)
和OrderItem模型

class OrderItem(models.Model):
    order = models.ForeignKey(Customer, on_delete=models.SET_DEFAULT, default=1)
    product = models.ForeignKey(Product, on_delete=models.SET_DEFAULT, default=1)
    quantity = models.PositiveIntegerField(default=1)
    ready = 1
    on_its_way = 2
    delivered = 3
    STATUS_CHOICES = (
        (ready, 'ready'),
        (on_its_way, 'on its way'),
        (delivered, 'delivered'),
    )
    status = models.SmallIntegerField(choices=STATUS_CHOICES)
    created = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ('-created',)
我按客户模型创建了另一个模型

class ByCustomer(models.Model):
    name = models.ForeignKey(Customer, on_delete=models.CASCADE)
    orders = models.ForeignKey(OrderItem, on_delete=models.CASCADE)
我想将其转换为ModelViewSet,其中仅显示所选客户的订单

class By_Customer_View(viewsets.ModelViewSet):
    # code let's you select only one customer
    # and returns all the Orders that customer has
我在@api\u视图中看到过类似的内容

 @api_view(['GET'])
 def by_customer(request, pk):
     tasks = ByCustomer.objects.get(name=pk)
     serializer = ByCustomerSerializer(tasks, many=False)
     return Response(serializer.data)

这将如何与ModelViewSet一起工作?我无法在(viewsets.ModelViewSet,pk)上添加额外参数。我还应该添加哪些字段?我缺少哪些字段?ModelViewSets仍然是新手,所以我不知道它的局限性。如果ModelViewSet对此没有解决方案。我需要在上面的@api_视图代码中更改什么?谢谢。

重写modelviewset的
get\u queryset()
方法。你是什么意思?用什么覆盖查询集?