我需要以Django创建的表单中的更改标签(password = forms.PasswordInput())。
我尝试过这个:
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class UserRegisterForm(UserCreationForm):
name = forms.CharField(label='نام و نام خوانوادگی', max_length=100)
email = forms.EmailField(label='ایمیل')
password1 = forms.PasswordInput(label='پسورد')
number = forms.IntegerField(label='شماره همراه')
class Meta:
model = User
fields = ['name' , 'email' , 'number','password1']
但是它不起作用并且有错误: TypeError: init ()获得了意外的关键字参数“标签”
答案 0 :(得分:1)
您正在从UserCreationForm
(即ModelForm
)继承,正如我在评论中提到的那样。如果您查看UserCreationForm
的源代码,就会看到password1
被定义为forms.CharField
,并且它不是来自模型。
像这样替换您的密码字段:
password1 = forms.CharField(
label="پسورد",
strip=False,
widget=forms.PasswordInput,
help_text=password_validation.password_validators_help_text_html(),
)
此外,从fields
列表中删除“ password1”。这不是用户模型中的字段。