我有一个模型User和另一个模型,其中管理员和用户来自同一模型User。
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'.
像这样修改代码:
admin = models.ForeignKey(User, related_name='admin_user')
users = models.ManyToManyField(User, related_name='users_user')
另见ForeignKey related_name
您正在创建具有相同向后关系的不同用户属性'user_set',这不起作用。
试一试:
admin = models.ForeignKey(User)
users = models.ManyToManyField(User,related_name="+")
提供两个不同的related_name属性,以便向后关系属性的名称不会冲突。
在这篇文章中,你可以看到同样的问题:邮报》文档: