我目前正试图仅通过使用基于类的视图来提高我的编码知识。我目前正在使用Django 2.0.7,但遇到了一些困难。我试图扩展用户模型以创建帐户。这很容易做到。但是我无法使密码散列。另外,当我尝试键入时,即使使用PasswordInput小部件,它也不会被隐藏。有什么建议吗?
#models.py
class Client(User):
name = models.CharField(max_length=30)
surname = models.CharField(max_length=50)
phone = models.CharField(max_length=15,
validators=[
RegexValidator(
regex='^[0-9+]+',
message='Not a valid phone number.',
),
])
address = models.CharField(max_length=255)
class Meta:
verbose_name = 'Client'
#forms.py
class ClientForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
class Meta:
fields = ('username', 'password', 'email', 'name', 'surname', 'phone', 'address')
model = Client
#views.py
class HomeView(CreateView):
template_name = 'home.html'
model = Client
form = ClientForm
fields = ('username', 'password', 'email', 'name', 'surname', 'phone', 'address')
success_url = reverse_lazy('home')
答案 0 :(得分:0)
在创建自己的用户模型没有密码之后,请使用set_password()
方法将密码分配给您的用户对象。
Ex: your_object.set_password(<psswd>)