【问题标题】:Django - where does the system determine "form" is Authentication Form?Django - 系统在哪里确定“表单”是身份验证表单?
【发布时间】:2020-12-23 06:02:05
【问题描述】:

Django 3.0.3 版

我正在尝试使用 Django 的内置用户身份验证系统,特别是它的登录表单和视图。

form = LoginForm()form = AuthenticationForm() 线路在哪里?

我在 LoginView 和 AuthenticationForm 定义中找不到它。而且我没有其他关于去哪里调查的想法。

我只是好奇 Django 如何确定幕后的上下文。

【问题讨论】:

标签: python django


【解决方案1】:
  1. 您需要导入内置的身份验证表单

    从 django.contrib.auth.forms 导入 AuthenticationForm

  2. 您需要为身份验证表单创建一个对象并将其传递给渲染函数。

    return render(request, 'user/login.html', {'form': form, 'title': 'Sign In'})

注意:
如果不发送表单实例来呈现功能,则不会显示登录表单 注册表格也类似。

【讨论】:

  • 谢谢。但问题是我找不到显示“form = LoginForm()”的行,我假设我们需要它,因为我们需要指定上下文。这就是我想知道的。 Django 的内置系统不使用 render(),而是使用基于类的视图。
  • 不,这取决于你,你可以扩展 UserModel 并且你应该渲染到另一个 html
  • 我的意思是在使用内置登录系统时,我们需要做的就是在“login.html”中添加“form”变量,并在“django.contrib.auth.urls”中添加路径进入settings.py。这有效。而且我不知道为什么这个过程有效,因为我找不到定义“form = LoginForm()”的行
  • 是的,因为它已经内置了兄弟
  • 所以你的意思是因为它是内置的,系统不必有“form = LoginForm()”这行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多