2013-04-01 43 views
-1

兩種模式我有一個問題:保存在post_save

已存在3種型號在我的應用程序:

class Cliente(models.Model): 
    #fields here ... 

class Imovel(models.Model): 
    #more fields and.. 
    dono = models.ForeignKey(Cliente) 

class Captacao(models.Model): 
    #here, have the fields of others models (Cliente and Imovel) 

我想填充模式「Cliente」和「Imovel」通過模式「Captacao」 ...我知道那裏post_save,但我不知道如何做到這一點,保存在各自的模型中的這些領域。

感謝,

+1

沒有足夠的信息來回答這個問題。 「有其他模型的領域」是什麼意思? Captacao如何與Imovel和Cliente相關? –

回答

1

如果你沒有這個Cliente的是,你可以創建他,用Imovel數據:

def save_in_other_models(sender, instance, created, **kwargs): 
    cliente = Cliente.objects.create(
     name=instance.name, 
     ident=instance.ident, 
    ) 
    Imovel.objects.create(
     dono=cliente 
    ) 

models.signals.post_save.connect(save_in_other_models, sender=Captacao) 

--------------- - ** ---------------- ** ---------------- ** ----------- ----- ** ---------------- ** ---------------- ** ------- -

如果你已經有了Cliente例如與您Captacao的關係:

**和T他將使用與您的Cliente關係創建一個新的Imovel Imovel

def save_in_other_models(sender, instance, created, **kwargs): 
    Imovel.objects.create(
     dono=instance.cliente 
    ) 

models.signals.post_save.connect(save_in_other_models, sender=Captacao)