【问题标题】:Django: How do I create a new model containing all the fields of another model (but unrelated to it)?Django:如何创建一个包含另一个模型的所有字段(但与它无关)的新模型?
【发布时间】:2012-03-10 17:48:44
【问题描述】:

给定一个现有的 Django 模型:

class MyModel(models.Model):
    field1 = ...
    field2 = ...
    ...
    fieldN = ...

我想创建一个完全独立的模型,如下所示:

class MyModel2(models.Model):
    field1 = ...
    field2 = ...
    ...
    fieldN = ...

    fieldA = ...
    fieldB = ...
    ...
    fieldZ = ...

多表继承对我不起作用,因为我希望 MyModel2 由包含其所有字段的数据库表支持,而不仅仅是额外的字段以及指向 MyModel 表的链接。

如果我可以更改 MyModel 的定义,那么定义抽象基类可能会起作用。但是还有其他方法吗,可能使用 Python type 元类?

【问题讨论】:

标签: python django inheritance model


【解决方案1】:

为什么不是两者的抽象基类,而您的具体类之一没有其他字段?

【讨论】:

  • 因为一般情况下我可能无法更改 MyModel 的定义。所以本质上我正在寻找一个函数,给定原始未更改的 MyModel,返回 MyModel2。
  • @jl6:我建议您阅读有关 Django 模型的信息,然后尝试使用它们,并尝试实现它,然后再提出您的任何具体问题。检查模型的 _meta 属性 - 里面有很多东西。
猜你喜欢
  • 2021-04-30
  • 1970-01-01
  • 2015-02-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 2019-09-10
  • 2015-04-12
  • 1970-01-01
相关资源
最近更新 更多