如何过滤两个不同的列值一起在过滤器查询Django?



我有两列,

对于单个量值amount和量程量值amount_minamount_max

amount_max0300000

您可以使用Q对象将条件与OR操作符(|)组合。

试一试:

from django.db.models import Q
import datetime
Jobs.objects.filter(
created_on__gte=datetime.datetime.now() - datetime.timedelta(days=30),
Q(amount_min=0, amount_max=0) |
Q(amount_min__gte=100000, amount_min__lte=100000, amount_max__gte=300000, amount_max__lte=300000) |
Q(amount__range=(100000, 300000))
)

我想你遇到问题了Q因为它不喜欢和普通的命名参数

组合在一起命名参数示例:created_on__gte = datetime.datetime.now() - datetime.timedelta(days=30)

我个人的做法是overwrapQ语句和非常慎重,例如:

Jobs.objects.filter(
Q(created_on__gte = datetime.datetime.now() - datetime.timedelta(days=30))
& Q(
Q(
Q(amount_min__gte = 100000)
& Q(amount_min__lte = 100000)
& Q(amount_max__gte = 300000)
& Q(amount_max__lte = 300000)
)
| Q(amount__range=(100000, 300000))
)
)

过度?——可能。

相关内容

  • 没有找到相关文章

最新更新