如何在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表单字段。