我是Django的新手,我遇到了一些问题: 我正在尝试准备网站,用户可以将自己附加到自定义模型“UserGroup”(而不是来自User.group),这样他们就会成为ManyToManyField关系的成员。但我还想向这些群体添加信息,无论他们是否与其他群体相关联。怎么办这样的事情?我在这里尝试这样做,在UserGroup定义中:
related_groups = models.ManyToManyField('UserGroup', blank=True)
但显然我不能这样做,我在迁移过程中遇到了一些问题:
django.core.exceptions.FieldDoesNotExist: UserGroup_related_groups has no field named 'from_usergroup
“
我想这可能是因为错误的思维方式。提前感谢您的帮助! :)
答案 0 :(得分:0)
所以你应该这样写:
related_groups = models.OneToOneField('Group', blank=True)
不要忘记以前导入Group模型!
from django.contrib.auth.models import Group
P.S。 有两种方法可以做到这一点: 1)创建自己的类(即ExtGroup)并将OneToOneField设置为原始Group类。你可能试图这样做。 2)使用您自己的用户类和组类。
以下是关于每种方式的非常好的文档:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#extending-the-existing-user-model
以下是同一问题的答案:Customize Django Group Model
希望它有所帮助;)
答案 1 :(得分:0)
使用“self”表示您正在链接到同一个班级。
related_groups = models.ManyToManyField("self", blank=True)