简体   繁体   English

在Django Haystack的SearchQuerySet中过滤空白CharField

[英]Filter blank CharField in Django Haystack's SearchQuerySet

I need to return all entries in a SearchQuerySet where a certain CharField is blank ie an empty string. 我需要返回SearchQuerySet中的所有条目,其中某个CharField为空,即空字符串。

In my search_indexes.py I have: 在我的search_indexes.py中,我有:

sometext = indexes.CharField(model_attr='sometext')

I've tried filtering using the usual SQS syntax: 我尝试使用通常的SQS语法进行过滤:

SearchQuerySet().filter(sometext__exact='')
SearchQuerySet().filter(sometext__in=['', None])

Neither return only the blank entries. 两者都不返回空白条目。 The first returns all entries, the second returns none at all. 第一个返回所有条目,第二个返回none。

Am I missing something in my SearchIndex definitions? 我在SearchIndex定义中遗漏了什么? Is there any way this can be done in Haystack using the Whoosh backend? 有没有什么办法可以在Haystack中使用Whoosh后端来完成?

try this, it works for me: 试试这个,它对我有用:

from haystack.inputs import Raw
r = SearchQuerySet()
r.exclude(sometext=Raw('*'))

你可以这样做:

    SomeQuerySet().filter(sometext='')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM