2016-11-30 108 views
0

我是新来的Django,我遇到了一些问题: 我想准备网站,用户可以将自己附加到自定义模型“UserGroup”(不是来自用户.group),所以他们会成为ManyToManyField关系的成员。但我也想向这些群体添加信息,不管他们是否与其他群体相关联。怎么能做到这样的事情?我试图做到这一点喜欢这里,在用户组的定义:Django,ManyToManyField(模型)虽然定义模型

related_groups = models.ManyToManyField('UserGroup', blank=True) 

但很显然,我不能这样做,这样一来,我越来越迁移过程中的一些问题:

django.core.exceptions.FieldDoesNotExist: UserGroup_related_groups has no field named 'from_usergroup

我想这可能是因为错误的思维方式。提前感谢您的帮助! :)

+0

请提供所有重现错误和完整的错误回溯所需的代码。 –

+0

请**(a)**显示您的整个模型,而不仅仅是一个字段和**(b)**在描述问题时更具体。 *“向这些群体添加信息,无论他们是否与其他群体相关联”* - 这是什么意思? – yuvi

+0

@KlausD。当然,这是整个模型(原型至少): https://codeshare.io/GLOdpa – szopenak

回答

0
  1. 您正在为用户组使用错误的类名称。正确的名称是
  2. 您应该使用OneToOne字段。

所以,你应该写类似:

related_groups = models.OneToOneField('Group', blank=True) 

而且不要忘记之前导入组模型!

from django.contrib.auth.models import Group 

P.S. 有两种方法可以做到这一点: 1)使自己的类(即ExtGroup),并使OneToOneField原始组类。你可能正试图这样。 2)使用你自己的用户类和组类。

下面是有关各道路非常好的文档:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#extending-the-existing-user-model

这里是同一个问题的答案:Customize Django Group Model

希望它帮助;)

+0

#yestema是的,我知道内置Group,但我不知道我的情况是否会成为一个好用法对于那:)我认为,这是对于像版主,管理员,专业用户等小品种。我想创建许多自定义组作为独立模型。目前卡住的问题是如何将相关模型链接在一起。我贴满了整个模特,如果你还想帮忙,请看看那里:) – szopenak

0

使用“自我”,以表明您链接到同一个班级。

related_groups = models.ManyToManyField("self", blank=True)

如建议在此SO发布Django Many-to-Many (m2m) Relation to same model

+0

谢谢!这是我遇到的情况。但仍然**我收到错误消息** ...我已将该行切换到'related_groups = models.ManyToManyField(“self”,blank = True)' 这里是错误代码,输入迁移后: https://codeshare.io/5O6gx2 – szopenak

+0

你在什么Django版本? –

+0

我已经删除数据库和每个迁移文件,试图再次初始化 - 迁移运行平稳,但在从管理面板添加UserGroup期间,它再次崩溃... https://codeshare.io/2jPnPa 我使用django 1.10.3版本。 – szopenak

相关问题