[]
使用 Django 1.4.2、Haystack 2.0beta 和 ElasticSearch 0.19,我如何查询MultiValueField集为空的结果?
问问题
591 次
2 回答
1
我会创建一个名为的整数字段num_<field>
并对其进行查询。
在此示例中,“电子邮件”是 MultiValueField,因此我们将创建“num_emails”:
class PersonIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name = indexes.CharField(model_attr='name')
emails = indexes.MultiValueField(null=True)
num_emails = indexes.IntegerField()
def prepare_num_emails(self, object):
return len(object.emails)
现在,在您的搜索中,您可以使用
SearchQuerySet().filter(num_emails=0)
于 2013-05-12T17:35:10.250 回答
0
您还可以更改prepare_
您的方法MultiValueField
:
def prepare_emails(self, object):
emails = [e for e in object.emails]
return emails if emails else ['None']
然后你可以过滤:
SearchQuerySet().filter(emails=None)
于 2018-12-13T08:21:49.540 回答