如何在django中创build密码input字段
嗨,我用django模型类与一些字段和密码字段。 我想显示密码input,而不是普通的普通文本。 我创build了这样一个模型类:
class UserForm(ModelForm): class Meta: password = forms.CharField(widget=forms.PasswordInput) model = User widgets = { 'password': forms.PasswordInput(), }
但是我收到以下错误:NameError:名称'窗体'未定义。
我正在使用django版本1.4.0。 我跟着这个链接: Django的密码问题
仍然得到相同的错误。 我该怎么办。 我哪里错了,请帮忙
您需要在导入中包含以下内容;
from django import forms
小部件需要是一个函数调用,而不是一个属性。 你错过了括号。
class UserForm(ModelForm): password = forms.CharField(widget=forms.PasswordInput()) class Meta: model = User
@DTTyrsa是正确的。 不要忘记你的括号。
from django.forms import CharField, Form, PasswordInput class UserForm(Form): password = CharField(widget=PasswordInput())
为什么不build立你自己的密码字段,你可以在所有的模型中使用。
from django import forms class PasswordField(forms.CharField): widget = forms.PasswordInput class PasswordModelField(models.CharField): def formfield(self, **kwargs): defaults = {'form_class': PasswordField} defaults.update(kwargs) return super(PasswordModelField, self).formfield(**defaults)
所以现在在你的模型中使用
password = PasswordModelField()
这很简单。
您应该从Meta
类中获得password
表单字段。