我正在尝试配置 django_ldap_auth 以使用来自 LDAP 的区域数据填充用户配置文件:
我为配置文件创建了一个模型:
from django.db import models
from django.contrib.auth.models import User
class profile(models.Model):
user = models.ForeignKey(User, unique=True)
region = models.CharField(max_length=128, null=True, blank=True)
def __unicode__(self):
return '{0} profile'.format(self.user.username)
class Meta:
app_label = 'core'
我将设置配置为映射到 'l' LDAP 属性(这就是在 LDAP 中标记区域的方式)
AUTH_PROFILE_MODULE = 'core.profile'
AUTH_LDAP_PROFILE_ATTR_MAP = {"region": "l"}
这可能很重要,配置文件类位于 app/models/UserProfile.py 文件中,并且 models/ init .py 有from UserProfile import profile
声明。
但是,我仍然在调试中收到以下消息,并且配置文件不会填充:
search_s('dc=*****,dc=ru', 2, '(sAMAccountName=******)') returned 1 objects: CN=Болотнов Александр,OU=****,OU=****,DC=***,DC=ru
Populating Django user *****
Django user **** does not have a profile to populate
有什么我想念的吗?诸如名字/姓氏和电子邮件之类的用户数据可以很好地填充,但区域不会。