Django查询:在范围查找中使用F.

时间:2017-01-30 16:59:03

标签: django django-queryset

我的app模型中有BigIntegerField“a”和DecimalField“b”,并尝试过滤查询集。

以下查询工作正常(因为查询集由多种方法动态过滤,因此使用“Q”):

qs.filter(Q(a__lte=F("b") + 1))
qs.filter(Q(a__gte=F("b")))

虽然以下引发“不支持从F转换为Decimal”:

qs.filter(Q(a__range=(F("b"), F("b") + 1)))

为什么会这样?我该如何解决?谢谢:))

1 个答案:

答案 0 :(得分:0)

除非您使用Django的开发分支,否则无法修复它。然而,这对于生产应用程序来说没有任何建议。根据{{​​3}},它计划包含在Django 1.11中。我不知道它是否会被移植,但它在发布更改中有所改变:ticket