2010-09-19 65 views
0

讓我們假設我有以下型號創建在__init__(在Django)的模型的關係

class A(Models.model): 
    def __init__(self,data): 
     B(a=self,data=data).save() 

class B(Models.model): 
    data = somefieldtype 
    a = Models.models.ForeignKey('A') 

現在,你可能會懷疑,有此模式definintion一個錯誤,因爲一個不能創造的關係到ainstance.save()被調用之前的實例。但是,這種init方法會使我的控制器變得更簡單。有沒有辦法避免這個問題?

回答

2

你可以把這個代碼的重寫save方法A

def save(self,**kwargs): 
    super(A,self).save(**kwargs) 
    B(a=self,data=data).save()