如何将Django的内置用户名和密码字段连接到用户定义的html输入标签

时间:2017-10-29 23:04:51

标签: django django-forms django-templates

我已经为我的登录表单使用了预定义的html模板,我尝试将django的标准/内置用户名和密码字段{{ form.username }}{{ form.password }}连接到输入字段html模板。它运行正常,但每次用户重定向到登录页面时,它都会在用户名和密码字段中填充None字段。

使用{{form.username}} and {{form.password}}`模板标记时,会使用有效的用户凭据填充它们。这是正常的还是我在这里遗漏了什么?

以下是我尝试使用输入字段而不是Django的内置用户名和密码字段的代码:

<!-- username input field-->
<div class="group">
    <label for="{{ form.username.id_for_label }}" class="label">Username</label> 
    <input id="{{ form.username.id_for_label }}" maxlength="100" name="{{ form.username.html_name }}" value="{{ form.username.value }}" type="text" class="input">
</div>

<!-- password input field-->
<div class="group">
    <label for="{{ form.password.id_for_label }}" class="label">Password</label>
    <input id="{{ form.password.id_for_label }}" maxlength="100" name="{{ form.password.html_name }}" value="{{ form.password.value }}" type="password" class="input">
</div>

enter image description here

1 个答案:

答案 0 :(得分:0)

一个简单的模板过滤器可以解决这个问题:default_if_none

<input ... value="{{ form.username.value|default_if_none:"" }}" .../>

当输入值为空字符串时,浏览器将自动使用适当的值填充它们。