Django用户多对多关系

4 投票
1 回答
2400 浏览
提问于 2025-04-15 21:20

当我尝试使用以下模型进行数据库同步时:

class Contact(models.Model):
    user_from = models.ForeignKey(User,related_name='from_user')
    user_to = models.ForeignKey(User, related_name='to_user')

    class Meta:
        unique_together = (('user_from', 'user_to'),)

User.add_to_class('following', models.ManyToManyField('self', through=Contact, related_name='followers', symmetrical=False))

我遇到了以下错误:

Error: One or more models did not validate:
auth.user: Accessor for m2m field 'following' clashes with related m2m field 'User.followers'. Add a related_name argument to the definition for 'following'.

auth.user: Reverse query name for m2m field 'following' clashes with related m2m field 'User.followers'. Add a related_name argument to the definition for 'following'.
auth.user: The model User has two manually-defined m2m relations through the model Contact, which is not permitted. Please consider using an extra field on your intermediary model instead.

auth.user: Accessor for m2m field 'following' clashes with related m2m field 'User.followers'. Add a related_name argument to the definition for 'following'.

auth.user: Reverse query name for m2m field 'following' clashes with related m2m field 'User.followers'. Add a related_name argument to the definition for 'following'.

1 个回答

0

请查看Carl对这个问题的回答,链接在这里:Django: 模型名称冲突

撰写回答