这是我关于SO的第一个问题。 我正在将django_ldap_auth 1.7与django 2.2版一起使用。根据他们的文档,可以同时填充UserProfile模型和User模型。我已经阅读了文档,以这种方式安排了settings.py和models.py。但是没有成功,我只能填充用户模型,而只能填充配置文件模型。
`class UserProfile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
user_id = models.CharField(max_length=16, null=True, blank=True)
firstname = models.TextField(null=True, blank=True)
lastname = models.CharField(max_length=16, null=True, blank=True)
role = models.CharField(max_length=16, null=True, blank=True)
class Meta:
app_label = 'account'
def __str__(self):
return self.user.username
def __init__():
print("Initiated User Profile")`
import os
import ldap
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType, GroupOfUniqueNamesType
import logging
AUTH_PROFILE_MODULE = 'account.UserProfile'
AUTH_LDAP_SERVER_URI = 'myURl'
AUTH_LDAP_BIND_DN = ''
AUTH_LDAP_BIND_PASSWORD = ''
AUTH_LDAP_USER_SEARCH = LDAPSearch('ou=People,dc=cse,dc=iitb,dc=ac,dc=in',
ldap.SCOPE_SUBTREE,
'(uid=%(user)s)')
AUTH_LDAP_USER_ATTR_MAP = {
'first_name': 'givenName',
'last_name': 'sn',
'email': 'mail',
}
AUTH_LDAP_PROFILE_ATTR_MAP = {
'userid': 'uid',
'firstname': 'givenName',
'lastname': 'sn',
'role' : 'employeeNumber',
}
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=People,dc=cse,dc=iitb,dc=ac,dc=in",ldap.SCOPE_SUBTREE,"(objectClass=groupOfNames)")
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
AUTH_LDAP_MIRROR_GROUPS = True
....
logger = logging.getLogger('django_auth_ldap')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)
search_s('ou=People,dc=cse,dc=iitb,dc=ac,dc=in', 2, '(uid=%(user)s)') returned 1 objects: uid=csehem,ou=pg17,ou=pg,ou=students,ou=people,dc=cse,dc=iitb,dc=ac,dc=in
Creating Django user csehem
Populating Django user csehem
search_s('ou=People,dc=cse,dc=iitb,dc=ac,dc=in', 2, '(&(objectClass=groupOfNames)(member=uid=csehem,ou=pg17,ou=pg,ou=students,ou=people,dc=cse,dc=iitb,dc=ac,dc=in))') returned 0 objects:
任何人都可以告诉我,为什么我不能填充个人资料模型,以及有什么方法可以做到?谢谢 另外,组没有镜像,我希望所有组都同步到django。这是怎么做的?