从Haystack的两个模型中搜索

时间:2014-11-03 08:25:22

标签: django django-haystack

如何从两个模型中搜索干草堆?

class People(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()

    def __unicode__(self):
        return self.name


class Note(models.Model):
    user = models.ForeignKey(CustomUser)
    title = models.CharField(max_length=200)
    body = models.TextField()
    pub_date = models.DateTimeField()

    def __unicode__(self):
        return self.title

实施两个索引没有帮助。

1 个答案:

答案 0 :(得分:0)

如果您已为所有型号注册了搜索索引,则可以指定要搜索的内容,例如:

SearchQuerySet().filter(content='foo').models(People, Note)

如果没有指定,它将在任何地方搜索

索引应该像

class PeopleIndex(indexes.SearchIndex, indexes.Indexable):
    ....

class NoteIndex(indexes.SearchIndex, indexes.Indexable):
    ....

在相应的search_indexes.py应用

P.S。确保通过对您使用的搜索引擎(如果可能)进行直接查询来索引所有模型