0

所以在我的项目中,我试图将 User 模型扩展到 Staff 类,将 Group 模型扩展到 PermGroup 类。但是,当我在 Staff 的组字段(从 User 继承)中保存 PermGroup 时,它只会将 PermGroup 对象保存为组,并且我在 PermGroup 类中定义的所有字段和方法都被删除了。所以我决定最好的做法是覆盖组字段。从我发现的早期stackoverflow问题和Django文档中,这应该可以工作。

class Staff(User):
    User.groups = models.ManyToManyField('PermGroup', blank=True)

我需要使用“PermGroup”,因为该类稍后会显示在文件中,并且 PermGroup 有一个依赖于 Staff 类的字段,所以如果我切换顺序我会遇到同样的问题,只是在 PermGroup 类中。

现在我遇到的问题是组现在是一个 ManyToManyField 对象,其中所有其他“manytomany”字段都是 ManyRelatedManagers。我希望组成为 ManyRelatedManager,但我不知道如何。

当我使用“PermGroup”模型调用启动组时,是否可以让组成为 ManyRelatedManager?

如果我的方法是错误的,您可以建议在 Staff 类中保存 PermGroups 的替代方法。我将不胜感激。

4

1 回答 1

0

为什么不让您的员工成为一个标准模型,并为其对应的用户提供一个 ForeignKey(更准确地说是 OneToOneField)?

而且,要消除循环依赖问题,您只需要使一个依赖于另一个。例如,PermGroup 模型可能具有该组中员工的多对多字段。Staff 不需要 PermGroup,因为如果您想查看成员所属的组,您只需执行以下操作:

groups_theyre_in = PermGroups.objects.filter(staff_members__id=id_were_looking_for)
于 2011-05-03T22:42:16.227 回答