1

ビューのセットアップに Haystack のデフォルトの URLConf を使用しています。そのような:

(r'^search/', include('haystack.urls')),

ログインしたユーザーのみが検索にアクセスできるようにするため、login_required デコレーターでラップするにはどうすればよいでしょうか。ありがとうございました。

4

2 に答える 2

4

ルート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'),
于 2013-02-04T20:55:39.647 に答える
2

login_requiredURLインクルードをデコレータでラップすることはできません。

その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'),
)
于 2013-02-04T21:01:29.990 に答える