我正在使用 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
配置只定义一个 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'),
)