【发布时间】:2014-11-08 21:33:40
【问题描述】:
我对 Django CMS 3.0 插件模型 copy_relations 函数有一些问题。
来自documentation的示例
def copy_relations(self, oldinstance):
for associated_item in oldinstance.associated_item.all():
# instance.pk = None; instance.pk.save() is the slightly odd but
# standard Django way of copying a saved model instance
associated_item.pk = None
associated_item.plugin = self
associated_item.save()
不工作,CMS 只是修改插件模型的实例。在此示例中,我需要添加 associated_item.id = None 才能使其工作。
这不是我的第一个 Django CMS 项目,而是 3.0 中的第一个。在以前的版本中,我确实遵循了文档,一切正常,但这次不行。
问题是:文档不是最新的还是我在创建模型的过程中做错了什么?
编辑: Here 是我找到如何制作 Django CMS 以保存模型实例副本的地方:
Due to how inheritance works, you have to set both ``pk`` and ``id`` to None
我需要为所有带有copy_relations 的模型执行此操作,我想知道为什么需要这样做。
【问题讨论】:
-
associated_item.pk = None和associated_item.id = None本质上是一回事。你确定你没有遗漏别的东西吗? -
也许你的模型上有一个明确命名为
pk的字段? -
@VasilyAlexeev 不是
pk。我需要为所有一对多模型执行此操作。 -
如果您自己找到了答案,值得将其作为问题的答案发布并接受为正确答案。如果您回答自己的问题并会帮助以后发现此问题的人,那是完全可以的。
-
@VasilyAlexeev 很抱歉我的编辑不佳。我只是想知道我为什么需要这样做,我只找到
how来修复它而不是why。
标签: django python-2.7 virtualenv django-cms django-1.6