Django为同一模型的现场用户和管理员建模

时间:2015-09-24 21:54:20

标签: django django-models

我有一个模型用户和另一个模型,其中管理员和用户来自同一模型用户。

admin = models.ForeignKey(User)
users = models.ManyToManyField(User)

我收到此错误:

ERRORS:
admin: (fields.E304) Reverse accessor for 'admin' clashes with reverse accessor for 'users'.
HINT: Add or change a related_name argument to the definition for 'admin' or 'users'.
users: (fields.E304) Reverse accessor for 'users' clashes with reverse accessor for 'admin'.
HINT: Add or change a related_name argument to the definition for 'users' or 'admin'.

2 个答案:

答案 0 :(得分:1)

更改此代码:

admin = models.ForeignKey(User, related_name='admin_user')
users = models.ManyToManyField(User, related_name='users_user')

另见ForeignKey related_name

答案 1 :(得分:0)

您正在使用相同的向后关系创建不同的用户属性 ' user_set',这不起作用。

试一试:

admin = models.ForeignKey(User)
users = models.ManyToManyField(User,related_name="+")

提供两个不同的related_name属性,以便向后关系属性'名字不会发生冲突。

在这篇文章中,您可以看到同样的问题: Post

Docs