覆盖Django用户模型

时间:2017-09-25 22:16:34

标签: python django web

我正在写一个Django应用程序。我想覆盖Django用户模型,原因如下:

1)我想使用LDAP进行身份验证。因此,我不需要Django身份验证。

2)我已经有了一个用户表,我想重用那个表。我不希望Django为我创建一个dup表。表结构也不能很好地“适应”Django User模型。

因此,我想覆盖Django User类。

有没有人能够从中学到任何好的榜样?

2 个答案:

答案 0 :(得分:2)

已经有用于使用LDAP进行身份验证的django库。我想我过去曾成功使用django-auth-ldap。 (虽然我通常需要一位LDAP专家来帮助我进行配置。)

documentation包含有关如何实施自定义用户模型的说明。首先执行此操作要容易得多(甚至在第一次迁移之前)。

答案 1 :(得分:0)

如果您想使用自己的用户表,则需要查看此处记录的AbstractBaseUser

https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#django.contrib.auth.models.AbstractBaseUser

使用它,您必须使用USERNAME_FIELD定义哪个字段将用作模型中的用户名。如果要手动应用更改并使模型和数据库表自行保持同步,您可能还希望将模型设置为managed = False

我用Django-python3-ldap获得了最好的运气:https://github.com/etianen/django-python3-ldap

我们已经使用OpenTAP在Python 3的生产中使用它已有好几年了,而且它还支持Active Directory。祝你好运!