代码之家  ›  专栏  ›  技术社区  ›  niklasfi Rahul Tripathi

在模型的初始化中创建关系(在Django中)

  •  0
  • niklasfi Rahul Tripathi  · 技术社区  · 15 年前

    假设我有以下模型

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

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

    1 回复  |  直到 15 年前
        1
  •  2
  •   adamk    15 年前

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

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