在使用django開發過程中遇到乙個問題,在使用了contenttype
、genericforeignkey
、genericrelation
等模組時,如果要使用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,不要考慮本地時間的存在。而顯示時間的時候,也避免手動轉換,盡量使用...