这让我有点生气,但看起来应该很简单。
我正在使用 Django 和 Haystack,并且有一个搜索索引,其中包括一个允许 null 的 IntegerField。这是基于 Django 中的相关模型,但我认为这无关紧要。例如:
class ThingIndex(indexes.ModelSearchIndex, indexes.Indexable):
group = indexes.IntegerField(model_attr='group__id', null=True)
class Meta:
model = Thing
有时我希望我的 Haystack 查询返回此字段为 None/Null 的项目,因此我在搜索表单的 __init__ 中进行过滤,但我无法获得执行此操作的查询。我尝试过的最明显的方法是:
self.searchqueryset.filter(group__isnull=True) # how to do it on a regular Django queryset
但这不会返回任何记录。
现在我正在解决这个问题:
self.searchqueryset.exclude(group__in=range(1,100))
这行得通,但显然不是应该的方式:)
有人能帮忙吗?
谢谢!
最佳答案
我觉得这个问题没有得到回答。操作人员似乎在询问如何使用带有 ElasticSearch 后端的 haystack.query.SearchQuerySet 来过滤空条目。
在上面的例子中,替换
self.searchqueryset.filter(group__isnull=True)
与
self.searchqueryset.filter(_missing_='group')
不直观,但这是目前为止我唯一能做到的方法。
关于python - 如何在 IntegerField 上为 None 过滤 Haystack SearchQuerySet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19976925/