Django按相关字段筛选
我有一些像这样的Django型号:Django按相关字段筛选,django,django-models,django-orm,Django,Django Models,Django Orm,我有一些像这样的Django型号: class Customer(models.Model): name = models.CharField(max_length=100) class Order(models.Model): title = models.CharField(max_length=100) ... customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_
class Customer(models.Model):
name = models.CharField(max_length=100)
class Order(models.Model):
title = models.CharField(max_length=100)
...
customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name='orders')
我想询问特定客户的订单
我应该用它吗
Order.objects.all().filter(customer_id)
还是它
customer_object.orders.all()
为什么呢?如果您有客户的id,您可以按如下方式使用:
Order.objects.all().filter(customer__id=id)
或者,如果您有与客户相关的对象,您可以直接传递它:
customer = ...
Order.objects.all().filter(customer=customer)
这是一种方法。它可以根据您希望应用程序的执行方式进行更改。您希望从何处获取客户订单?例如,在视图中。如果您已经拥有客户对象,则第二种选择会更好