我是Django的新手,我面临的一个问题是我在Stackoverflow上没有答案。基本上,我有2个模型,客户和订单定义如下:
class Client(models.Model):
name = models.CharField(max_length=200)
registration_date = models.DateTimeField(default=timezone.now)
# ..
class Order(models.Model):
Client = models.ForeignKey(ModelA, on_delete=models.CASCADE, related_name='orders')
is_delivered = models.BooleanField(default=False)
order_date = models.DateTimeField(default=timezone.now)
# ..
我希望我的QuerySet clients_results
满足以下两个条件:
orders
关系访问的订单对象只是满足其他条件的对象;例如,订单未交付,并且在过去6周内完成。我可以直接在模板中执行此操作,但是我认为这不是正确的方法。另外,我在doc中读到,不应将Order的Base Manager用于此目的。最终,我发现使用Q和F相对question距离我的比较近,但是最后,我将获得order_id,而理想情况下,我希望拥有整个对象。
您能为我提供解决此需求的最佳方法吗?
非常感谢您的帮助!
我是Django的新手,我面临的一个问题是我在Stackoverflow上没有答案。基本上,我有2个模型,分别定义为Client和Order:类Client(models.Model):name = models ....
[您可能应该在此处使用Prefetch(..)
object [Django-doc]来获取每个Prefetch(..)
的相关未交付的Order
,并将它们存储在Client
中,但是然后存储在不同的属性中,因为否则会生成混乱。