2013-06-22 63 views
0

说我有以下几种,Model_1有1个整数,Model_2继承Model_1并增加了另一个整数。Django继承了模型实例创建函数

class Model_1Manager (models.Manager): 
    def create (self, i) 
    m = self.model(value1=i) 
    m.save() 

class Model_1 (models.Model): 
    value1 = model.IntegerField() 
    objects = Model_1Manager() 

class Model_2Manager (Model_1Manager): 
    def create (self, i1, i2) 
    m = self.model(value1=i1, value2=i2) 
    m.save() 

class Model_2 (Model_1): 
    value2 = model.IntegerField() 
    objects = Model_2Manager() 

问题:

  1. 是在Model_2Managercreate()功能正常写成是什么?
  2. 有什么方法可以给我打电话Model_1Managercreate()函数?这将如何工作?

回答

1

Model_2Managercreate()功能正常写成是什么?

它是。

有没有办法让我打电话给Model_1Managercreate()函数?这将如何工作?

在这种情况下 Model_1Manager.create()

遗憾的是没有做足够的初始化Model_2,所以你不应该试图调用它。

+0

嗯...我想它也没有任何意义继承经理。我应该做的是制作Model_1抽象,而不是为它定义一个管理器,然后为Model_2定义一个管理器。 – reedvoid