【问题标题】:Create User in Django through form通过表单在 Django 中创建用户
【发布时间】:2020-12-18 05:47:12
【问题描述】:

我想在 Django 中有一个用户注册表单,我知道对于后端我应该有这样的东西:

>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')


>>> user.last_name = 'Lennon'
>>> user.save()

但是,我不知道如何制作前端。我已经在 Django 文档中查找并找到了 UserCreationForm 类,它说它已被弃用。 我该怎么办?谢谢

【问题讨论】:

    标签: django django-forms django-authentication


    【解决方案1】:

    试试这样的:

    #forms.py
    
    class UserCreationForm(forms.ModelForm):
        """A form for creating new users. Includes all the required
    fields, plus a repeated password."""
    password1 = forms.CharField(label='Password', widget=forms.PasswordInput)
    password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput)
    
    class Meta:
        model = MyUser
        fields = ('email', 'date_of_birth')
    
    def clean_password2(self):
        # Check that the two password entries match
        password1 = self.cleaned_data.get("password1")
        password2 = self.cleaned_data.get("password2")
        if password1 and password2 and password1 != password2:
            raise ValidationError("Passwords don't match")
        return password2
    
    def save(self, commit=True):
        # Save the provided password in hashed format
        user = super().save(commit=False)
        user.set_password(self.cleaned_data["password1"])
        if commit:
            user.save()
        return user
    

    您应该阅读 Django 文档中关于身份验证的 this 部分。

    【讨论】:

      猜你喜欢
      • 2018-04-10
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 2014-12-08
      • 2018-09-25
      相关资源
      最近更新 更多