python - 如何在 IntegerField 上为 None 过滤 Haystack SearchQuerySet

标签 python django django-haystack

这让我有点生气,但看起来应该很简单。

我正在使用 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/

相关文章:

python - 迭代 for 循环并应用 np.union1d

python - setup.py 是否确实将包加载到 GCP Dataflow 中?

mysql - 在 Django 中连接两个包含相同外键的表

python - Django Haystack 字段的独特值(value)

python - Elasticsearch 异常ConnectionError

python - 使用正则表达式获取 XML 父标签

python - 如何在 App Engine 中使用 Google Acounts API?

django - 如何重命名 Django 应用程序并将数据从一个应用程序迁移到另一个应用程序

Django 多数据库映射

django - 使用带有 Elasticsearch 的Django干草堆自动完成功能搜索数字/数字吗?