我有两个模型
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
我不知道如何在查询中引用对象本身来动态执行此操作。
最好的问候, 鲁本·巴罗斯
最佳答案
您需要使用 F expressions对于这个查询。 您的查询将如下所示:
products = Product.objects.filter(
Q(delivery_date__lte=(datetime.datetime.now() + timedelta(days=F('contract__safety_days'))))
)
关于Django - 查询如何查询自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40262311/