Django管理员内联到父模型

时间:2017-05-26 00:37:25

标签: python django django-admin

我有几个相关的模型。在django admin中,我想创建Appeal

从模型中可以看出,我需要从Assignment列表中进行选择,但在我的情况下,通常需要从头开始创建。如果我点击" +"

,Django admin会提供此选项

然后,在Assigment内,我需要选择ClientProfile,但在大多数情况下,我需要再次创建它,这意味着我会点击&#34 ; +"

但是从我的模型中可以看出,ClientProfile指的是User,更常见的是,它还需要重新创建,因此再次按下" +"

在这种情况下最可怕的是用户指的是地址模型。

问题是,是否可以做一些事情,这样你就不必按3-5次" +"?每次印刷都伴随着开场流行,并不是很方便。

我正在思考表单或模型本身的继承,创建几个抽象模型,我也考虑过WizardView,我无法将其集成到Django-admin中。

我很困惑,不明白该怎么做。

问题是我错误地构建了模型架构? 我不会说这是如此,我喜欢模型的相关性。

class Appeal(Base):
   ...
   assigment = models.ForeignKey(Assignment, null=True)
   ...


class Assignment(Base):
    ...
    client = models.ForeignKey(ClientProfile, null=True)
    ...
    address = models.ForeignKey(Address, null=True)
    ...


class ClientProfile(Base):
    ...
    user = AutoOneToOneField(settings.AUTH_USER_MODEL, null=True)
    ...


@python_2_unicode_compatible
class User(AbstractUser):
    ...
    phone_number = models.ManyToManyField(PhoneNumber)
    ...
    address = models.ForeignKey(Address, null=True)
    ...

1 个答案:

答案 0 :(得分:-1)

可以在Django admin中为相关模型添加内联,可以从documentation中读取。但是Django管理员并不总是可靠的,因此为了满足您的要求,最好有自己设计的管理面板。