Django: где общие формы, такие как LoginView, отображают функции заполнения словаря и как их изменить - PullRequest
0 голосов
/ 29 декабря 2018

Я использую класс LoginView в Django.Мы можем использовать этот класс как представление входа в систему с шаблоном HTML, как показано ниже:
urls:

from django.contrib.auth.views import LoginView

urlpatterns = [
path('', LoginView.as_view(), {'template_name': 'login.html'}),
]

login.html:

<head>
   <title>test<title>
   {% load static %}
</head>
<body>
   <form method="POST">
      {% csrf_token %}
      {{ form.as_p }}
   </form>
</body>

Мой вопрос заключается в том, где отображается словарь функцийили httprequest заполнить?и как я могу изменить form.as_p на login_form.as_p, например?

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Вы должны использовать пользовательский вид входа в систему следующим образом:

from django.contrib.auth.views import LoginView

class CustomLoginView(LoginView):

  def get_context_data(self, **kwargs):
    """Insert the form into the context dict."""
    if 'login_form' not in kwargs:
        kwargs['login_form'] = self.get_form()
    # Another your context
    return super().get_context_data(**kwargs)
0 голосов
/ 29 декабря 2018

Вы можете получить помощь от Официальный документ Django

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...