ビューのセットアップに Haystack のデフォルトの URLConf を使用しています。そのような:
(r'^search/', include('haystack.urls')),
ログインしたユーザーのみが検索にアクセスできるようにするため、login_required デコレーターでラップするにはどうすればよいでしょうか。ありがとうございました。
ビューのセットアップに Haystack のデフォルトの URLConf を使用しています。そのような:
(r'^search/', include('haystack.urls')),
ログインしたユーザーのみが検索にアクセスできるようにするため、login_required デコレーターでラップするにはどうすればよいでしょうか。ありがとうございました。
ルートurls.pyに追加
from django.contrib.auth.decorators import login_required
from haystack.views import basic_search
と変更:
url(r'search/*', include(haystack.urls)),
次の行に:
url(r'search/$', login_required(basic_search), name='basic_search'),
login_required
URLインクルードをデコレータでラップすることはできません。
そのURLパスだけにミドルウェアを追加するか、検索ビューを明示的に追加する必要があります。デフォルトのurls.py
構成では、次の1つのURLのみが定義されています。
from django.conf.urls.defaults import *
from haystack.views import SearchView
urlpatterns = patterns('haystack.views',
url(r'^$', SearchView(), name='haystack_search'),
)
したがって、独自のURL構成で、インポートしてSearchView
(構成する場合はおそらく良い考えです)、そのビューをラップすることができます。あなた自身でurls.py
:
urlpatterns = patterns('haystack.views',
url(r'^$', login_required(SearchView()), name='haystack_search'),
)