11
我有可以屬於一個或多個組織模型實例的事件模型實例。我已經實施haystack 2.0.0來索引我的所有事件。這是一個示例搜索索引。Django Haystack:基於列表中的多個項目篩選查詢。
class EventIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
organization_slug = indexes.CharField(model_attr='organization__slug',
weight=5.0)
organization_name = indexes.CharField(model_attr='organization__name',
weight=5.0)
name = indexes.CharField(model_attr='name', weight=10.0)
....
def get_model(self):
return Event
def index_queryset(self):
return Event.objects.filter()
我的問題是我怎麼構建一個SearchQuerySet查詢過濾器基於一個或多個組織活動。例如,我想找到屬於「orgnization1」和「organization3」的所有活動(其中的機構名單可任意長度長)
作爲一個Django查詢它可能是這個樣子:
Event.objects.filter(organization__in=[orgnization1, organization3]).filter(...)
如何將其轉換爲乾草堆查詢?這是我的嘗試,但我真的不知道我在做什麼...
organization_list = [organization1.slug, organization2.slug]
SearchQuerySet().filter_or(organization__contains=organization_list)
這裏是我的模型外觀的示例:
class Event(models.Model):
name = models.CharField(max_length=64)
organization = models.ForeignKey('mymodule.Organization')
...
class Organization(models.Model):
slug = models.SlugField(max_length=64)
name = models.CharField(max_length=64)
...
任何幫助深表感謝。
我意識到這是很老,但你可以.filter(organization_slug__in = organization_list) – Nagyman 2014-01-09 17:34:25
尼斯代碼:d,謝謝 – 2015-07-31 14:12:46