我通過在Django模型中使用'meta'來添加自定義權限。看下面的一個簡單的例子。Django元權限
Models.py
class Meta:
permissions = (
("can_do_stuff", "Can do stuff"),
)
這個偉大的工程,我上面的代碼添加到模型,然後讓我的遷移,然後將其遷移。權限被創建並可供使用。
但是,當我從我的模型的'meta'部分刪除(或修改)該權限並再次從Django系統刪除權限(已刪除/修改)makemigrations
,migrate
。
這不會是一個問題,如果我已經想出了我的權限系統100%,但我一直在進行微調,因爲我學習的結果是權限列表與'傳統'權限混亂。
我正在開發和發佈新版本,以便頻繁使用,並且權限在生產中越來越混亂,我不能像在開發中那樣擦除數據庫。
有沒有推薦的方法呢?
我可以直接從數據庫手動刪除舊的權限(它似乎只是一個條目,我需要刪除,它似乎不會導致任何問題)。這似乎是一個糟糕的做法,容易出錯,被遺忘等。
您是否嘗試過對模型進行其他修改以確保創建了新遷移,並檢查了此處未刪除權限?編輯:我發現了一個[關閉的問題](https://code.djangoproject.com/ticket/23256),看起來它已被修復。 – guival