【问题标题】:Django inherited model instance creation functionDjango继承模型实例创建功能
【发布时间】:2013-06-22 03:35:47
【问题描述】:

假设我有以下,Model_1 有 1 个整数,Model_2 继承 Model_1 并添加另一个整数。

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_2Manager 中的create() 函数是否按原样正确编写?
  2. 有什么方法可以让我调用Model_1Managercreate() 函数吗?这将如何运作?

【问题讨论】:

    标签: django inheritance django-managers


    【解决方案1】:

    Model_2Manager 中的create() 函数是否按原样正确编写?

    是的。

    我有什么方法可以调用Model_1Managercreate() 函数吗?这将如何运作?

    很遗憾,在这种情况下,Model_1Manager.create() 不足以初始化 Model_2,因此您不应尝试调用它。

    【讨论】:

    • 嗯...我想继承管理器也没有任何意义。我可能应该做的是让 Model_1 抽象,而不是为它定义一个管理器,然后为 Model_2 定义一个管理器。
    猜你喜欢
    • 2011-05-03
    • 2012-12-11
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2013-07-20
    • 2016-03-26
    相关资源
    最近更新 更多