關於Django的contenttypes資料遷移

2021-07-12 07:25:42 字數 648 閱讀 6037

在使用django開發過程中遇到乙個問題,在使用了contenttypegenericforeignkeygenericrelation等模組時,如果要使用dumpdata遷移資料,你可能會發現,資料庫中django_content_type這張表中模組的id會變化,導致資料亂掉!

後來發現,這個鍋是沒有按django官方要求來操作導致的,一定要在專案**裡面儲存migrations檔案

出現這個問題的原因:

如果你在某個models.py中新加了乙個class,在你makemigrations->migrate之後,新的model的id就是最大的id+1

但如果你沒有儲存migrations檔案,部署時候是重新生成的migrations檔案,那麼新加的model的id就是按第1條中說的順序排,這樣會導致它之後的id全部加一,使用了contenttype的模組的資料自然就亂了

解決這個問題的方法也很簡單,就是按django官方文件說的:

django的contenttypes,請參考官方文件

django的migrations,參考官方文件

如何刪除activity中的contentView

有時需要將activity中的contentview清除,但activity中沒有直接提供removecontentview方法,但可以這樣做 首先,自己生成乙個view並儲存了,例如 view v new view this v.setbackgroundcolor 0xff00ffff 然後將這...

關於Django的理解

django的核心是中介軟體,所有的請求和響應都會經過中介軟體 中介軟體是乙個鉤子框架,它們可以介入請求的響應處理過程,它用於在全域性修改django的輸入和輸出 django有以下幾個中介軟體 具體執行流程如下 django的中介軟體在專案的settings.py中的middleware clas...

關於django的時區設定

django如果開啟了time zone功能,則所有的儲存和內部處理,甚至包括直接print顯示全都是utc的。只有通過模板進行表單輸入 渲染輸出的時候,才會執行utc本地時間的轉換。所以我建議後台處理時間的時候,最好完全使用utc,不要考慮本地時間的存在。而顯示時間的時候,也避免手動轉換,盡量使用...