django - 如何构造和初始化具有许多依赖性的复杂模型对象

时间:2015-07-30 14:49:10

标签: python django

我有一个看起来像这样的django模型:

LAlt & MButton::Send {Ctrl Down}{Shift Down}{RButton Down}
keywait, LAlt
keywait, MButton
LAlt & MButton Up::Send {Ctrl Up}{Shift Up}{RButton Up}
return

每次我创建ParentClass的实例时,我都需要确保我有一个有效的ChildClass对象。是否有适当的或标准的方法来创建这些"依赖"对象?我目前的计划是在class ChildClass(Model): # define fields class ParentClass(Model): child1 = models.ForeignKey(ChildClass) child2 = models.ForeignKey(ChildClass) child3 = models.ForeignKey(ChildClass) 中创建子对象,并将其保存在__init__中,如下所示:

save

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

你可能想看看django信号DEMO HERE。在该模型的post_init信号上放置一个信号,并让它创建并关联子模型。

以下是信号列表https://docs.djangoproject.com/en/1.8/topics/signals/

例如:

@reciever(post_init, sender=ParentClass)
def on_parent_class_create(sender, **kwargs):
    instance = kwargs['instance']
    instance.child1 = ChildClass()
    etc...
    ...