我正在尝试将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,但仍然收到相同的错误。
任何人都可以帮我解决这个问题吗?
答案 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()的模型。这种方法会 返回当前活动的用户模型 - 自定义用户模型(如果有) 指定,或用户否则。
我不建议您自己修改第三方软件包。如果可以,请向开发人员建议更改,或向他们发送拉取请求。一旦被接受,请更新包。