Python : 名称 'set_password' 未定义
Python : name 'set_password' is not defined
我尝试注册用户,在添加到数据库之前散列他们的密码,如下所示
settings.py
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.MD5PasswordHasher',
)
Models.py
from django.contrib.auth.models import AbstractBaseUser
class Users(AbstractBaseUser):
name = models.CharField(max_length=200)
email = models.CharField(max_length=200)
password = models.CharField(max_length=255)
Views.py
name = form.cleaned_data.get('name')
email = form.cleaned_data.get('email')
password = form.cleaned_data.get('password')
date_joined = date.today()
if Users.objects.filter(email=email).exists() and Users.objects.filter(name=name).exists() :
messages.info(request, 'User already exists')
else:
Users.objects.create(name=name, email=email, password=set_password(password), date_joined=date_joined)
但是当我真正尝试创建用户时,我得到 Python : name 'set_password' is not defined
怎么了?我需要在 Views.py
导入一些东西吗?
您必须在用户实例上使用 set_password()
,而不是在创建用户时使用。
试试这个:
user = Users.objects.create(name=name, email=email, date_joined=date_joined)
user.set_password(password)
user.save()
我看到你在扩展用户模型。我会看一些文章来了解如何做到这一点,我推荐这个 article。
我尝试注册用户,在添加到数据库之前散列他们的密码,如下所示
settings.py
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.MD5PasswordHasher',
)
Models.py
from django.contrib.auth.models import AbstractBaseUser
class Users(AbstractBaseUser):
name = models.CharField(max_length=200)
email = models.CharField(max_length=200)
password = models.CharField(max_length=255)
Views.py
name = form.cleaned_data.get('name')
email = form.cleaned_data.get('email')
password = form.cleaned_data.get('password')
date_joined = date.today()
if Users.objects.filter(email=email).exists() and Users.objects.filter(name=name).exists() :
messages.info(request, 'User already exists')
else:
Users.objects.create(name=name, email=email, password=set_password(password), date_joined=date_joined)
但是当我真正尝试创建用户时,我得到 Python : name 'set_password' is not defined
怎么了?我需要在 Views.py
导入一些东西吗?
您必须在用户实例上使用 set_password()
,而不是在创建用户时使用。
试试这个:
user = Users.objects.create(name=name, email=email, date_joined=date_joined)
user.set_password(password)
user.save()
我看到你在扩展用户模型。我会看一些文章来了解如何做到这一点,我推荐这个 article。