相关名称与+冲突

时间:2014-08-06 03:20:44

标签: django

使用Django 1.6.5

我在这个应用程序中的所有模型都有一个related_name ='+'但我仍然收到此错误。 Django失去了它的大理石吗?

from django.contrib.auth import get_user_model
User = get_user_model()

class StaffGroup(models.Model):
    agency = models.ForeignKey(Agency)
    name = models.CharField(max_length=64)
    users = models.ManyToManyField(User, related_name='+')

错误消息

messaging.staffgroup: Accessor for m2m field 'users' clashes with related m2m field 'User.+'. Add a related_name argument to the definition for 'users'.

将用户更改为staff_users仍会生成相同的错误,只需更改几个单词。

messaging.staffgroup: Accessor for m2m field 'staff_users' clashes with related m2m field 'User.+'. Add a related_name argument to the definition for 'staff_users'.

1 个答案:

答案 0 :(得分:3)

这不是一个错误,ManyToMany有关于'+'的不同语法:

https://docs.djangoproject.com/en/1.6/ref/models/fields/#django.db.models.ManyToManyField.related_name

您需要为每个名称指定一个唯一的名称(例如在您的员工模型中):

users = models.ManyToManyField(User, related_name='staff+')