我正在尝试复制我的Page模型的实例,并将新页面的状态设置为“draft”。此代码在Django shell中完美运行,但在它所在的admin操作中,会创建一个新实例,但状态不会更新。
for page in pages:
page.pk, page.id = None, None
page.save()
page.status = Page.DRAFT
page.updated_at = datetime.now()
page.save(force_update=True)
因此,上面的代码会创建一个新页面,但不会更改其状态。
我认为它可能与具有代理模型的页面有关,具体取决于状态(PublishedPage,DraftPage等)。但我不确定问题是什么。
答案 0 :(得分:1)
别。
for page in pages:
new_page= Page.objects.create(
this= page.this, that=page.that, ...
status= Page.DRAFT )
更简单。更清楚。它确实有效。
答案 1 :(得分:0)
事实证明,子类化页面的代理模型具有覆盖我的更新的自定义保存方法。