@login_required декоратор в Django 1.1 и Template_name - PullRequest
1 голос
/ 22 марта 2012

Я использую @login_required в своих представлениях ... и в книге django они говорят, что вы не хотите использовать шаблон регистрации / login.html по умолчанию, который вы можете передать в качестве дополнительного аргумента представления template_name.

Но я попробовал:

@login_required(template_name='washtest/login.html')

но у меня ошибка

login_required () получил неожиданный аргумент ключевого слова 'template_name'

Так какМогу ли я передать свое template_name для входа в мое приложение?с этим декоратором?

Спасибо за помощь

laurent

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

template_name можно установить для вида входа в систему , а не для login_required декоратора.

login_required использует URL-адрес, заданный в settings.LOGIN_URL . Таким образом, вы определяете свой вид с этим URL и пользовательским шаблоном:

(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}),

Таким образом, у вас будет собственный шаблон входа.

1 голос
/ 22 марта 2012

Я не нашел шаблонной переменной в login_required ... 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()))
...