Django 局部变量';密码1';分配前参考

Django 局部变量';密码1';分配前参考,django,python-3.x,django-forms,Django,Python 3.x,Django Forms,所以我一直在关注Django文档中关于自定义用户模型(AbstractBaseUser)的示例。但当我从管理员网站创建用户时,它开始给我这个错误 “赋值前引用的局部变量'password1'” 下面我已经包含了admin.py from django.contrib import admin from django import forms from django.contrib.auth.models import Group from django.contrib.auth.admin im

所以我一直在关注Django文档中关于自定义用户模型(AbstractBaseUser)的示例。但当我从管理员网站创建用户时,它开始给我这个错误 “赋值前引用的局部变量'password1'” 下面我已经包含了admin.py

from django.contrib import admin
from django import forms
from django.contrib.auth.models import Group
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.forms import ReadOnlyPasswordHashField

class UserCreationForm(forms.ModelForm):
    password1 = forms.CharField(label= 'Password' , widget = 
      forms.PasswordInput)
    password2 = forms.CharField(label = 'Password Confirmation', widget = 
     forms.PasswordInput)


    class Meta:
       model = CustomUser
 #with my added feilds in AbstractBaseUser
       fields = ('email','first_name','last_name', 'Mobile', 
       'Aadhar_Card', 'Address','is_supervisor','is_employee','is_driver')

    def clean_password2(self):
        password1 = self.cleaned_data.get(password1)
        password2 = self.cleaned_data.get(password2)
        if password1 and password2 and password1 != password2:
           raise forms.ValidationError("Passwords Dont Match")
        return password2


   def save(self, commit=True):
       user = super().save(commit=False)
       user.set_password(self.cleaned_data["password1"])
       if commit:
          user.save()
       return user

您的
clean_password2
方法确实引用了未定义的变量。您需要使用字符串:

password1 = self.cleaned_data.get("password1")
password2 = self.cleaned_data.get("password2")

您的
clean_password2
方法确实引用了未定义的变量。您需要使用字符串:

password1 = self.cleaned_data.get("password1")
password2 = self.cleaned_data.get("password2")

我忘记了密码指的是变量而不是字符串。谢谢,我忘记了密码指的是变量而不是字符串。谢谢