2010-09-19 12 views
0

laisse supposer que j'avais le modèle suivantCréation d'une relation dans __init__ d'un modèle (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') 

maintenant que vous pourriez soupçonner, il y a une erreur dans ce modèle definintion, comme on ne peut pas créer une relation à l'instance A avant l'appel d'ainstance.save(). Cependant, ce type de méthode init rendrait mes contrôleurs beaucoup plus simples. Y a-t-il un moyen d'éviter ce problème?

Répondre

2

Vous pouvez mettre ce code dans une méthode save surchargée de A:

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