0

我在模型上有一个price字段和一个shipping字段。

我需要添加两者的值并将它们用作Q对象查询的一部分。理想情况下,类似:

if '1' in selected_prices:
  query |= Q(price_and_shipping__range=(1, 1000))

if '2' in selected_prices:
  query |= Q(price_and_shipping__range=(1001, 2000))

我知道我不能只创建一个price_and_shipping属性并使用它,但是有什么替代方法?

4

1 回答 1

0

找到了一种使用 F() 表达式解决此问题的好方法

if '1' in selected_prices:
  query |= Q(price__gte=1 - F('shipping'), price__lte=1000 - F('shipping'))

if '2' in selected_prices:
  query |= Q(price__gte=1001 - F('shipping'), price__lte=2000 - F('shipping'))

使用类似问题的答案解决了这个问题:https ://stackoverflow.com/a/10664491/152653

更多关于 F() 表达式:https ://docs.djangoproject.com/en/dev/topics/db/queries/#query-expressions

于 2013-02-05T23:15:11.027 回答