我正在使用Haystack默认URLConf来设置视图。就这样:
(r'^search/', include('haystack.urls')),
我如何将它包装在login_required装饰器中,因为我只希望登录用户访问搜索。谢谢。
答案 0 :(得分:3)
在root 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'),
答案 1 :(得分:2)
您无法使用login_required
装饰器包装网址包含。
您应该做的是为该URL路径添加一些中间件或显式添加您的搜索视图。默认urls.py
配置仅定义一个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'),
)