django auth ldap与自定义用户模型

时间:2014-01-30 13:38:46

标签: python django django-auth-ldap

我正在尝试将django auth ldap(v1.1.7)与自定义用户模型一起使用,虽然我已经完成了其他所有事情,但我仍然遇到一个熟悉的错误消息,我只是不知道如何固定。

运行python manage.py syncdb会返回:

CommandError: One or more models did not validate:
django_auth_ldap.testprofile: 'user' defines a relation with the model 'auth.Use
r', which has been swapped out. Update the relation to point at settings.AUTH_US
ER_MODEL.

我的问题是 - 我在哪里可以找到django_auth_ldap.testprofile并更新关系,以解决问题?

先谢谢你帮助我。

LE:好的,经过一点点google,我发现这个testprofile位于django_auth_ldap / models.py并得到这个:我搜索了所有我的文件并找到了修改过的文件它指向settings.AUTH_USER_MODEL,但仍然收到相同的错误。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

django_auth_ldap的{​​{1}}个models.py -

class TestProfile(models.Model):
    """
    A user profile model for use by unit tests. This has nothing to do with the
    authentication backend itself.
    """
    user = models.OneToOneField('auth.User')  # <-- here is the trouble
    is_special = models.BooleanField(default=False)
    populated = models.BooleanField(default=False)

你无法修复它,除非你修复了这部分代码,并按照the part中的说法进行操作 -

  

您应该引用该用户,而不是直接引用User   使用django.contrib.auth.get_user_model()的模型。这种方法会   返回当前活动的用户模型 - 自定义用户模型(如果有)   指定,或用户否则。

我不建议您自己修改第三方软件包。如果可以,请向开发人员建议更改,或向他们发送拉取请求。一旦被接受,请更新包。