Django - 查询如何查询自身?
Django - How does a query query itself?
我有两个模型
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'))))
)
我有两个模型
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'))))
)