RuntimeError:无法解析与用户的Django组的依赖关系

时间:2018-02-04 11:19:45

标签: django django-models

现在我遇到了问题 RuntimeError: Can't resolve dependencies运行测试时和经过长时间调试后我们发现forigen键关系是问题所在 然而,我们在我们的应用程序中需要这种关系

我必须得到Django Groups的所有者关系

这样的模型:

class UserAccount(AbstractUser):
    arabic_name = models.CharField(max_length=128, default='', blank=True)
    parent = models.ForigenKey('self', null=True)


django.contrib.auth.models import Group

Group.add_to_class('owner', models.ForeignKey('users.UserAccount',
                              blank=True,
                              null=True,
                              related_name='groups_created'
                              ))

因为我需要为组定义所有者,因为我拥有针对用户的特定层次结构系统,因此没有人可以看到其他组

那我该怎么办?

更新 - 解决方案

class UserAccount(AbstractUser):
        arabic_name = models.CharField(max_length=128, default='', blank=True)
        hierarchy_id = models.PositiveIntegerField()


django.contrib.auth.models import Group

Group.add_to_class('hierarchy_id', models.PositiveIntegerField(null=True))

#script populate hierarchy 
h_id=0
for user in users:
    if user.is_parent:
         then user.hierar...... = h_id

等等..我填充了层次结构ID而不是关系

由于

1 个答案:

答案 0 :(得分:0)

实际上,我发现您可以在不知情的情况下进行循环依赖,以防万一您进行了关联并进行迁移,然后过了一段时间再进行反向关联,然后再进行迁移,它不会发生冲突,但是例如在测试中两者都立即迁移时它将发生冲突。所以我尝试了这种解决方案,并在问了一年的问题后进行了测试,效果很好。

class UserAccount(AbstractUser):
    arabic_name = models.CharField(max_length=128, default='', blank=True)
    hierarchy_id = models.PositiveIntegerField()

django.contrib.auth.models import Group

Group.add_to_class('hierarchy_id', models.PositiveIntegerField(null=True))

#script populate hierarchy 
h_id=0
for user in users:
    if user.is_parent:
         then user.hierar...... = h_id