首页 > 解决方案 > 如何使用函数在 django 中复制 Meta 中差异很小的模型?

问题描述

我有一个 Django 项目,它有很多模型和很多关系。我的工作是使用一个函数创建一个具有不同名称和 db_table 元数据的新模型,该函数具有将被复制的模型参数。我应该更改ManyToManyForeignKey引用新创建/将创建的新模型。

我在 Django 中使用 type(name, (models.Model,), attrs) 尝试了 DynamicModels,但经过一番尝试后,'is_relation' 属性错误开始起作用。create_model 函数将用于执行此操作。

Class C(models.Model):
  q = models.CharField(max_length=20)

  def __str__(self):
    return self.q

Class A(models.Model):
  x = models.CharField(max_length=20)
  y = models.DateTimeField(auto_now_add=True)

Class B(models.Model):
  z = models.ForeignKey(A)
  t = models.ManyToManyField(C)
  w = models.DateTimeField(auto_now_add=True)

def create_model(model):
  pass

我有这样的课程,我在摘要中进行了描述。我应该用不同的 db_table 创建像 C1, A1, B1 这样的新类metas。另外,我应该将字段更改为 A1ForeignKeyManyToManyC1。

如果您要求,我可以添加我的 create_model 函数。

标签: pythondjango

解决方案


推荐阅读