我已添加以下查询。它的工作原理。现在我想扩展它。
return self.model.objects.filter((
Q(field1=F('p__field1')) |
Q(field2=F('p__field2'))),
user=user
)
如果F('p__field1')
是empty/blank
。然后,我不想将其包含在过滤器Q(field1=F('p__field1')
中。 (换句话说,我不想过滤这个。)
同样适用于F('p__field2')
。
field1
是ForeignKey
,field2
是两个表格中的ManyToMany
字段。
任何想法?谢谢你的帮助。
答案 0 :(得分:0)
您可以在之前或之后使用其他过滤器来确保字段不为空。
model_filter = Q()
if self.model.p.field1:
model_filter |= Q(field1=F('p__field1'))
if self.model.p.field2:
model_filter |= Q(field2=F('p__field2'))
return self.model.objects.filter(user=user).filter(
model_filter
)