【发布时间】:2019-09-23 20:25:40
【问题描述】:
如何克隆模型以使其包含(克隆)FK 相关模型上的数据?我查看了 Stack 上的各种相关问题,发现其中大部分是针对旧版本/过时版本的 Django。以下是一些说明性模型代码(为简洁起见,省略了 str 方法等):
class Tracking(models.Model):
entry = models.CharField(blank=False, max_length=50)
timestamp = models.DateTimeField(null=True, auto_now_add=True)
active = models.BooleanField(default=False)
class Author(models.Model):
entry = models.ForeignKey(Tracking, on_delete=models.CASCADE)
first_name = models.CharField(blank=False, max_length=50)
last_name = models.ImageField(null=True, blank=True)
class Scene(models.Model):
entry = models.ForeignKey(Tracking, on_delete=models.CASCADE)
location = models.CharField(blank=False, max_length=50)
image = models.ImageField(null=True, blank=True)
我想要的结果是在 Tracking 模型上克隆一个现有的“条目”,这样在新行上创建一个新的“条目”,并使用它自己的 PK,以及“作者”和“场景”的克隆副本” 各自表上的数据也指向新克隆的“条目”。任何指向正确方向的指针都会有所帮助。我在 django 文档中找不到任何内容。
【问题讨论】:
-
您想对所有实例或特定实例执行此操作吗?获得您想要的模型并创建必要模型的新实例有什么问题?
-
谢谢,我的意思是一个特定的实例。对于一些背景知识,我希望我的用户能够复制完整的模型和依赖模型,以便他们可以编辑和保存它们,最终“发布”它们。 “已发布”记录在跟踪模型上将是 active=True,但管理员可以通过使该记录处于活动状态来回滚到先前的数据集。对于我目前的技能水平来说,这实际上是雄心勃勃的,我什至想知道我是否以正确的方式思考这个问题。
标签: django postgresql