我有两个型号
Product
id:
delivery_date: DateTimeField
contract: FK
Contract
id:
safety_days: IntegerField
我需要在接下来的X天内提供产品。这个X在合同中定义为safety_days。
products = Product.objects.filter(
Q(delivery_date__lte=(datetime.datetime.now() + timedelta(days=contract__safety_days)))
)
但是,我无法做到:
days = contract__safety_days
我不知道如何在查询中引用对象本身来动态地执行此操作。
祝你好运, 鲁本巴罗斯
答案 0 :(得分:4)
您需要对此查询使用F expressions。 您的查询将采用以下方式:
products = Product.objects.filter(
Q(delivery_date__lte=(datetime.datetime.now() + timedelta(days=F('contract__safety_days'))))
)