![](/img/trans.png)
[英]Filter blank CharField in Django Haystack's SearchQuerySet
[英]Dynamically filter Haystack SearchQuerySet based on the user
我需要根據當前用戶篩選Haystack的SearchQuerySet。 我知道我可以在其他視圖中通過request.user
獲取當前用戶,所以我想我需要覆蓋Haystack的默認SearchView,但是我不確定如何。 以下是我的urls.py和views.py的示例。
urls.py:
urlpatterns = patterns('mysite.search.views',
url(r'^mymodel/$', search_view_factory(
view_class=MySearchView,
template='mymodel_search.html',
form_class=MyModelSearchForm,
searchqueryset = SearchQuerySet().models(MyModel),
), name='mymodel_search'),
...
views.py:
class MySearchView(SearchView):
def build_form(self, form_kwargs=None):
prop = UserProfile.objects.get(user = self.request.user).property
self.searchqueryset = self.searchqueryset.filter(property = prop)
return super(MySearchView, self).build_form(form_kwargs)
但是,這似乎不起作用。 結果僅限於MyModel(在urls.py中過濾),但是MySearchView中的過濾似乎沒有任何作用。 我應該采取其他方式或地點嗎?
這是我自己的錯誤。 在我自定義的MyModelSearchForm的search()
方法中,我將搜索查詢集重置為SearchQuerySet().models(MyModel)
,因此它替換了所有以前的過濾。 我嘗試使用MySearchView
的方法有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.