我正在使用django_python3_ldap连接到活动目录。我可以导入用户并对其进行同步,以确保已经在AD中的用户可以登录到应用程序而无需单独的凭据。
但是,问题是,除了用户名,名字,姓氏和电子邮件外,我还想从广告中导入电话和办公室位置。但是,仅添加这些字段会导致同步中断。我从各种教程中读到,我应该 extend 扩展Django用户模型,但是该库使用的导入不支持扩展的一对一值。我对完全取代django用户模型没有信心,因此,有什么好的方法可以扩展用户模型以包括这些字段?
答案 0 :(得分:0)
感谢ErickLavault,我得以解决此问题。对于以后再来的人,这就是我的做法。
创建一个新模型并使其继承AbstractUser。然后,我只添加了我想要的新字段。
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
office = models.CharField('office', max_length=40, blank=True)
phone_number = models.CharField('phone_number', max_length=40, blank=True)
然后,我通过在LDAP部分之前添加以下行,在settings.py
中用此新模型对默认模型进行了替换
AUTH_USER_MODEL = 'authentication.User'
身份验证为应用名称,用户为我要使用的模型
这使我可以保留与基本Django用户模型相同的功能,同时可以按需要扩展类属性。