2017-05-26 158 views
0

我有几个相关的模型。在django管理员中,我想创建AppealDjango管理员内联父模型

从模型中可以看出,我需要从Assignment列表中进行选择,但在我的情况下,最常见的情况是需要从头开始创建。 Django管理规定,如果我点击“+”

然后,Assigment里面,我需要选择ClientProfile,但同样,在大多数情况下,我需要重新创建它,这意味着我将点击此选项“+”

但是这可以从我的模型中可以看出,ClientProfile指的是用户,而更多的时候,它也需要重新建立,所以再次按下“+”

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

问题是,是否有可能做一些事情,使您不必按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

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

+0

我当然知道Inline。但我需要相反的东西,我需要给孩子添加父母。在我表示要在第一个表格中创建一个条目的示例中,我需要点击5个加号,并填写5个表格。 我想尽量减少这种情况,无论是通过覆盖表单还是WizzardForms中的SessionView –