Настройка django_auth_ldap для заполнения профиля пользователя
Я пытаюсь настроить 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'
Я сконфигурировал мои настройки для сопоставления с атрибутом LDAP 'l' (именно так регион отмечен в 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
Я что-то пропустил? Пользовательские данные, такие как имя / фамилия и адрес электронной почты, заполняются просто отлично, а регион - нет.
1 ответ
Это означает, что данный конкретный объект User не имеет ассоциированного объекта профиля. Django не создает автоматически объекты профиля, как и django-auth-ldap. Как правило, вы устанавливаете обработчик сигнала post_save на User
Модель для создания профилей.