Django 1.5 и более поздние версии
Начиная с Django 1.5, LOGIN_URL
и LOGIN_REDIRECT_URL
принимают именованные шаблоны URL. Это означает, что вам не нужно жестко задавать URL-адреса в настройках.
LOGIN_URL = 'login' # name of url pattern
Для Django 1.5 - 1.9 вы также можете использовать имя функции представления, но это не рекомендуется, поскольку в Django 1.8 оно устарело и не будет работать в Django 1.10 +.
LOGIN_URL = 'django.contrib.auth.views.login' # path to view function
Джанго 1,4
Для Django 1.4 вы можете использовать reverse_lazy
LOGIN_URL = reverse_lazy('login')
Джанго 1.3 и более ранние
Это оригинальный ответ, который работал до того, как reverse_lazy
был добавлен в Django
В urls.py, настройки импорта:
from django.conf import settings
Затем добавьте шаблон URL
urlpatterns=('',
...
url('^%s$' %settings.LOGIN_URL[1:], 'django.contrib.auth.views.login',
name="login")
...
)
Обратите внимание, что вам нужно нарезать LOGIN_URL
, чтобы удалить переднюю косую черту.
В оболочке:
>>>from django.core.urlresolvers import reverse
>>>reverse('login')
'/accounts/login/'