Dar*_*mid 56 django django-templates django-models django-forms django-views
嗨我正在使用django模型类与一些字段和密码字段.我想显示密码输入,而不是显示普通的纯文本.我创建了一个这样的模型类:
class UserForm(ModelForm):
class Meta:
password = forms.CharField(widget=forms.PasswordInput)
model = User
widgets = {
'password': forms.PasswordInput(),
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:NameError:未定义名称'forms'.
我使用的是django 1.4.0版.我按照这个链接:Django密码问题
仍然得到同样的错误.我该怎么办.我哪里出错了.请帮忙
Bur*_*lid 64
小部件需要是函数调用,而不是属性.你缺少括号.
class UserForm(ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
class Meta:
model = User
Run Code Online (Sandbox Code Playgroud)
DrT*_*rsa 55
您需要在导入中包含以下内容;
from django import forms
Run Code Online (Sandbox Code Playgroud)
小智 16
为什么不创建您自己的密码字段,您可以在所有模型中使用.
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)
Run Code Online (Sandbox Code Playgroud)
所以现在在你的模型中使用
password = PasswordModelField()
Run Code Online (Sandbox Code Playgroud)
小智 14
@DrTyrsa是对的.别忘了你的括号.
from django.forms import CharField, Form, PasswordInput
class UserForm(Form):
password = CharField(widget=PasswordInput())
Run Code Online (Sandbox Code Playgroud)
我做了如下操作,没有任何额外的导入
from django import forms
class Loginform(forms.Form):
attrs = {
"type": "password"
}
password = forms.CharField(widget=forms.TextInput(attrs=attrs))
Run Code Online (Sandbox Code Playgroud)
这个想法来自源代码: https://docs.djangoproject.com/en/2.0/_modules/django/forms/fields/#CharField
归档时间: |
|
查看次数: |
85481 次 |
最近记录: |