密码不会散列并且密码输入不起作用

时间:2018-07-18 19:07:49

标签: python django django-forms

我目前正试图仅通过使用基于类的视图来提高我的编码知识。我目前正在使用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')

1 个答案:

答案 0 :(得分:0)

在创建自己的用户模型没有密码之后,请使用set_password()方法将密码分配给您的用户对象。

Ex: your_object.set_password(<psswd>)