Python 我的密码存储在Django admin的电子邮件字段中

Python 我的密码存储在Django admin的电子邮件字段中,python,django,Python,Django,我有一个存储两个表单数据的视图。我的第二张表格的数据很好。但是对于主用户表单,我只想存储用户名、密码并进行密码确认。创建用户时,出于某种原因,密码会存储在电子邮件字段中 class UserForm(forms.ModelForm): password = forms.CharField(label='Password', max_length=32, required=True, widget=forms.PasswordInput) confirm_password = fo

我有一个存储两个表单数据的视图。我的第二张表格的数据很好。但是对于主用户表单,我只想存储用户名、密码并进行密码确认。创建用户时,出于某种原因,密码会存储在电子邮件字段中

class UserForm(forms.ModelForm):
    password = forms.CharField(label='Password', max_length=32, required=True, widget=forms.PasswordInput)
    confirm_password = forms.CharField(label='Confirm', max_length=32, required=True, widget=forms.PasswordInput, help_text="Passwords must match!")

    def clean(self):
        cleaned_data = super(UserForm, self).clean()
        password = cleaned_data.get("password")
        confirm_password = cleaned_data.get("confirm_password")

        if password != confirm_password:
            raise forms.ValidationError(
                "password and confirm_password does not match"
            )

    class Meta:
        model = User
        fields = ('username', 'password')
        exclude = ('email',)

def student_register(request, user):
    data = dict()
    if request.method == 'POST':
        form1 = UserForm(request.POST)
        form2 = StudentForm(request.POST, request.FILES)
        if form1.is_valid() and form2.is_valid():
            cd1 = form1.cleaned_data
            user.username = cd1["username"]
            user.password = cd1["password"]
            user.confirm_password = cd1["confirm_password"]
            new_user = User.objects.create_user(user.username, password, confirm_password)
            new_user.save()
            cd2 = form2.cleaned_data
            name = cd2['name']
            surname = cd2['surname']
            email = cd2['email']
            phone = cd2['phone']
            student_id = cd2['student_ID']
            photo = cd2['photo']
            Student.objects.create(user=new_user, name=name, surname=surname, email=email, phone=phone,
                                   student_ID=student_id, photo=photo)
            return redirect('index')
    else:
        form1 = UserForm()
        form2 = StudentForm()
    data['form1'] = form1
    data['form2'] = form2
    return render(request, "student_signup_form.html", data)

该方法的第二个参数是
email
。更改代码,以便将
密码
作为关键字参数传递。您不需要在该行中确认密码

new_user = User.objects.create_user(user.username, password=password)

摘自以下来源:

注意如何调用
User.objects.create_User(…)
,第二个参数是
password
。从该方法的签名可以看出,
密码
作为
电子邮件
传递<代码>确认\u密码根本不应传入:

new_user = User.objects.create_user(user.username, password=password)

现在还不清楚
def student_register(request,user):
中的
用户是干什么的,或者为什么要设置
user.username=cd1[“username”]
-我希望该代码在这一点上会给出错误。我删除了它。忘记编辑此代码。
new_user = User.objects.create_user(user.username, password=password)