Pro*_*eus 2 python django django-crispy-forms
Crispy 表单目前将我的密码字段显示为明文。我尝试了以下操作,但仍然无法使用 type=password。
Fieldset(
'Enter a password.',
PrependedText('password', '<i class="fa fa-key"></i>',
placeholder='Password',
autocomplete='off',
widget=forms.PasswordInput,
),
),
Run Code Online (Sandbox Code Playgroud)
我也累type="password"了没有效果。
我没有错误。
我 99.9% 肯定您没有将小部件添加到表单字段声明中。你应该有这样的东西才能显示密码字段:
class MyForm(forms.Form):
...
password = forms.CharField(widget=forms.PasswordInput)
...
Run Code Online (Sandbox Code Playgroud)
布局应该像这样简单:
Layout(
PrependedText('password', '@', placeholder="password", autocomplete='off')
)
Run Code Online (Sandbox Code Playgroud)
该widget=关键字参数是在Django的定义forms.CharField构造函数,而不是在Django的cryspy表单bootstrap.PrependedText的构造。
您可以在此处找到有关 Django 表单字段的更多信息。
如果您有一个模型表单,它是从您的模型构建的,可以是自动(例如使用管理视图),也可以是通过使用modelform_factory或自己定义 ModelForm。这是第 3 种方法的示例。
class MyModelForm(forms.ModelForm):
class Meta:
fields = (... fields you want to include in the form ...)
password = forms.CharField(widget=forms.PasswordInput, ...)
Run Code Online (Sandbox Code Playgroud)
请注意,通过提供模型表单字段覆盖,您还必须提供标签、help_text(等)等属性,因为它们不会从模型字段自动复制。