我在我的视图中使用@login_required
..在django书中他们告诉我你不想使用默认的registration / login.html模板,你可以传递额外的视图参数template_name。
但是我试过了:
@login_required(template_name='washtest/login.html')
但我有错误
login_required()获得了一个意外的关键字参数'template_name'
那么如何将我的template_name传递给我的应用程序进行登录?有这个装饰师吗?
寻求帮助
劳伦
答案 0 :(得分:3)
可以在login view上设置template_name
,而不是在login_required
装饰器上设置。
login_required
使用settings.LOGIN_URL中设置的网址。因此,您使用该URL和自定义模板定义视图:
(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}),
这样你就可以拥有自定义登录模板。
答案 1 :(得分:1)
我在login_required中找不到任何模板var ... https://docs.djangoproject.com/en/1.1/topics/auth/#django.contrib.auth.decorators.login_required
您可以在urls.py中使用权限装饰器,然后检查用户是否已登录:
(r"^market/$", permission_required("CHANGE", "/accounts/denied/")(CreateMarketView.as_view()))