Django 自定义用户认证

Posted 我的胡子有点扎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 自定义用户认证相关的知识,希望对你有一定的参考价值。

Django 自定义用户认证

Django附带的认证对于大多数常见情况来说已经足够了,但是如何在 Django 中使用自定义的数据表进行用户认证,有一种较为笨蛋的办法就是自定义好数据表后,使用 OnetoOne来跟 Django 的表进行关联,类似于这样:

from django.contrib.auth.models import User

class UserProfile(models.Model):
    """
    用户账号表
    """
    user = models.OneToOneField(User)
    name = models.CharField(max_length=32)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name_plural = verbose_name = "用户账号"
        ordering = [\'id\']

这样做虽然可以简单、快速的实现,但是有一个问题就是我们在自己的表中创建一个用户就必须再跟 admin 中的一个用户进行关联,这简直是不可以忍受的。

admin代替默认User model

  1. 写我们自定义的 models 类来创建用户数据表来代替默认的 User model,而不与django admin的进行关联,相关的官方文档在这里

    以上是关于Django 自定义用户认证的主要内容,如果未能解决你的问题,请参考以下文章

    python/django models中自定义用户认证及django admin自定义

    Django自定义用户表替换默认用户表认证

    Django自定义Auth模块方式

    Django自定义Auth模块方式

    Django之用户认证Auth组件

    自定义用户认证(继承django的)