如何解决创建无法登录的django用户
我想创建一个用作 ForeignKey 的用户,但我不希望这些用户可以登录系统。我不知道如何继续。 (关于设置 set_unusable_password() 或 None 以及如何执行它):
我的accounts.py文件如下
class User(AbstractBaseUser):
GENDER = (("MALE","Male"),("FEMALE","Female"))
user_type = models.CharField(max_length=50,choices=Types.choices,default=Types.PATIENT)
full_name = models.CharField(max_length=255,blank=True,null=True)
phone = models.CharField(max_length=255,unique=True)
email = models.CharField(max_length=255,null=True,unique=True)
active = models.BooleanField(default=False)
gender = models.CharField(max_length=15,choices=GENDER)
admin = models.BooleanField(default=False)
staff = models.BooleanField(default=False)
timestamp = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
USERNAME_FIELD = "phone" # username
REQUIRED_FIELDS = []
objects = UserManager()
先谢谢各位。
解决方法
您可以使用用户记录的 is_active 字段
is_active 布尔值。指定此用户帐户是否应 认为是活跃的。我们建议您将此标志设置为 False 而不是删除帐户;这样,如果您的应用程序有任何 外键给用户,外键不会坏。
,在视图中,您还应该检查用户是否处于活动状态。 例如:
def user_login(request):
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
user = authenticate(username = username,password = password)
if user is not None and user.active:
login(request,user)
由于您已经覆盖了您的用户模型并从 is_active 更改了活动字段。如果活动字段为 False 那么它将不允许用户登录,如果用户处于活动状态,它将允许用户登录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。