Подтвердить что ты не робот

Есть встроенный шаблон входа в Django?

Я хочу, чтобы пользователь заходил перед просмотром страниц. Есть ли встроенный шаблон для входа пользователя, так что мне не нужно писать собственную страницу на странице?

4b9b3361

Ответ 1

Да. Вы можете прочитать все об этом здесь: https://docs.djangoproject.com/en/1.8/topics/auth/default/#django.contrib.auth.decorators.login_required... но вот несколько пунктов:

  • добавить 'django.contrib.auth.middleware.AuthenticationMiddleware' в MIDDLEWARE_CLASSES в settings.py
  • добавить 'django.contrib.auth'django.contrib.contenttypes' в INSTALLED_APPS в settings.py
  • настройте URL-адрес для входа, используя django.contrib.auth.views.login для представления, например url(r'^login/$', 'django.contrib.auth.views.login',name="my_login")
  • По вашему мнению, включите декоратор login_required и добавьте его перед вашим представлением. Например...

views.py...

from django.contrib.auth.decorators import login_required

@login_required
def home(request):
  return HttpResponse('Home Page')

По умолчанию вы помещаете шаблон внутри my_template_directory/registration/login.html. Более подробную информацию об этом шаблоне можно найти по ссылке в начале этого сообщения.

Ответ 2

Как уже упоминалось в комментариях автора, самый простой способ сделать это - добавить следующие строки в urls.py:

from django.contrib.auth.views import login, logout

urlpatterns = patterns('',
    url(r'^accounts/login/$', login, {'template_name': 'admin/login.html'}),
    url(r'^accounts/logout/$', logout),
)

Насколько я знаю, добавление URL r'^accounts/$' и r'^accounts/profile/$' не требуется, если не требуется управление профилем пользователя.

Как было предложено @mmatt в комментариях, установите LOGIN_REDIRECT_URL = '/' в settings.py, чтобы избежать перенаправления по умолчанию на /accounts/profile/ после входа в систему. См. LOGIN_REDIRECT_URL в документации по настройкам Django.

Ответ 3

Самый отложенный ответ от @brant технически неверен. Django предоставляет представления по умолчанию для обработки функций входа, но в документации не предоставляется шаблон:

Django не предоставляет шаблон по умолчанию для представлений аутентификации. Вы должны создать свои собственные шаблоны для тех видов, которые вы хотите использовать. Контекст шаблона документирован в каждом представлении, см. Все виды проверки подлинности.