在模型的__init__中创建一个关系(在Django中)

时间:2010-09-19 11:40:59

标签: python django django-models entity-relationship

让我们假设我有以下模型

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')

现在您可能会怀疑,此模型定义中存在错误,因为在调用ainstance.save()之前无法创建与A实例的关系。但是,这种类型的init方法会使我的控制器更加简单。有没有办法避免这个问题?

1 个答案:

答案 0 :(得分:2)

您可以将此代码放在save的重写A方法中:

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