我試圖複製我的Page模型的實例並將新頁面的狀態設置爲「草稿」。此代碼在Django shell中完美工作,但在其所在的管理操作中,會創建一個新實例,但狀態不會更新。複製模型的實例並更新字段
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等)。但我不確定問題出在哪裏。
爲什麼'page.save()'在所有屬性設置之前? –
我只是想確保我沒有保存沒有主鍵的模型。 「 – tocf
」沒有保存沒有主鍵的模型?「當Django的ORM不存在時,它會爲你創建密鑰。當確實存在時進行更新。 –