Вы допустили некоторые ошибки в своем классе Meta
и атрибуте model
: это <b>M</b>eta
(начинается с заглавной буквы) и <b>m</b>odel
(начинается с заглавной буквы):
class UserForm(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput())
class <b>Meta</b>:
<b>model</b> = User
fields = ('username' , 'email' , 'password')
Но этого будет недостаточно. Вы не можете установить пароль модели User
, установив атрибут. Джанго хеширует пароль. Вам следует использовать метод User.set_password(..)
[Django-doc] . Вы можете сделать это, переопределив метод save()
:
class UserForm(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput())
def <b>save</b>(self, commit=True):
user = super().save(commit=False)
<b>user.set_password(self.cleaned_data['password'])</b>
if commit:
user.save()
return user
class Meta:
model = User
fields = ('username' , 'email' , 'password')