gpt4 book ai didi

django - 自定义 Django 用户身份验证表单

转载 作者:行者123 更新时间:2023-12-01 14:38:35 24 4
gpt4 key购买 nike

我是 Django 新手。我正在构建一个使用 django-authentication 模块的 django 项目。

所以我使用 LoginForm 生成上下文变量 {{form.username}} 和 {{form.password}} 供任何用户登录。但是为了让用户体验更好,我有类似的东西

    <td><input type="text" name="username"  id="" size="30" value="" class='loginput'/></td>

而不是简单的

    <td>{{ form.username }}</td>

我如何着手使用输入标签,但仍然使用 django 身份验证后端表单?我也明白,对于任何其他形式,我可能会使用小部件、形式媒体。我无法解决这个问题。

谢谢。

最佳答案

为什么这会提高可用性?唯一的区别是您添加了一个 class,并且出于某种原因删除了 id 属性,因此无法使用 标签。我看不出在任何情况下,让一些东西更难访问会让用户体验更好。并且移除 Django 表单在验证失败的情况下重新显示错误值的动态能力似乎也很难向前迈出一步。

虽然我不太明白你的问题在问什么。如果你真的想在你的模板中使用这个不太有用的标记,为什么不直接这样做呢?在任何情况下,您都必须为 contrib.auth View 提供模板,所以这是您的机会。

当然,更好的方法是简单地继承 LoginForm 并在其中添加您的 HTML 类:

class LoginForm(auth.forms.AuthenticationForm):
username = forms.CharField(label=_("Username"), max_length=30,
widget=forms.TextInput(attrs={'class': 'loginput'}))

并在额外上下文中将此表单传递给登录 url:

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

关于django - 自定义 Django 用户身份验证表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7705850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com