Django用户julienb没有popu的配置文件

2024-06-24 12:20:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过ldap登录到管理站点。 用户在ldap中找到。我的问题是每次我尝试登录时,都会遇到这个错误。在

search_s('ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu', 2, '(SAMAccountName=%(user)s)')returned 1 objects: cn=julien boelen,ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu

search_s('ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu', 2, '(SAMAccountName=%(user)s)')returned 1 objects: cn=julien boelen,ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu

Populating Django user julienb

Populating Django user julienb

Django user julienb does not have a profile to populate

Django user julienb does not have a profile to populate

显然我不能登录到管理网站。 我不知道如何告诉django“不要使用个人资料!!让我登录”

这是我的设置.py在

^{pr2}$

我不明白为什么我不能登录,为什么他要求提供一个配置文件,我不使用配置文件,有什么东西需要指定来通知django不关心配置文件,让我登录:)


Tags: djangosearch配置文件employeeoudcldapbi
2条回答

我知道那个档案日志看起来很吓人,但实际上它有点像是一条红鲱鱼。你真正的问题是你试图用一个没有职员或超级用户权限的帐户登录到管理页面。根据您当前的设置,有两种处理方法:

1)如果您希望您的帐户的超级用户权限从LDAP模型继承,则需要为is_superuser属性设置用户标志映射,其效果是

AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    "is_superuser": "cn=superuser,ou=groups,dc=example,dc=com"
}

2)如果不起作用,则需要使用已经具有超级用户权限的现有帐户登录。当您第一次使用python manage.py syncdb时,应该会提示您创建一个超级用户帐户。只要您仍然使用django.contrib.auth.backends.ModelBackend进行身份验证,您就可以继续使用该超级用户帐户访问您的管理页面。否则,您可以随时进入shell并将您的帐户升级为超级用户或创建一个新的超级用户帐户。在

*为了澄清这一点,身份验证后端正在试图填充您的User对象和关联的UserProfile对象(如果存在的话)。这是错误日志不够具体的情况。。。该错误消息并不表示存在问题,而是表示尚未实现的功能。(请访问https://docs.djangoproject.com/en/1.4/topics/auth/#storing-additional-information-about-users如果您想了解有关1.4中此功能的更多信息。。。在1.5中已经是deprecated

LDAPBackend不创建配置文件。首先尝试使用用户模型类创建用户。在Django项目目录中需要一个shell:

python manage.py shell

然后在Python shell中尝试:

^{pr2}$

通过这种方式,用户被正确地创建了,并且使用了一个空密码。 配置文件可以包含其他字段,您可以使用设置中的AUTH_LDAP_profile_ATTR_MAP参数填充LDAP属性。如果您对定制感兴趣,请注意,因为在django1.5中,用户配置文件已被弃用,并被一个定制用户模型替代,这应该更灵活。在

https://docs.djangoproject.com/en/1.5/topics/auth/customizing/#extending-the-existing-user-modelhttps://docs.djangoproject.com/en/1.5/topics/auth/customizing/#substituting-a-custom-user-model

相关问题 更多 >