我正在爲Django中的權限創建裝置。我可以按照需要加載它們。然而,我的問題是...我想加載表auth_group_permissions
的燈具,我需要指定group_id
和permission_id
,不幸的是燈具不是處理這個問題的最好方法。有沒有一種更簡單的方式來以編程方式執行此操作所以我可以得到id
特定的值,並填寫它們?這通常如何完成?Django裝置權限
5
A
回答
8
正確的解決方案是以與框架本身相同的方式創建權限。
您應該連接到模塊management.py
或management/__init__.py
中的內置post_syncdb
信號,並在那裏創建權限。該文檔確實表示,爲響應post_syncdb
信號而執行的任何工作都不應該執行任何數據庫更改,但您還應該注意,框架本身會根據此信號創建權限。
所以我建議你看看django.contrib.auth
應用程序的management module,看看它應該如何完成。
3
由於至少Django> = 1.7,由於引入了「自然鍵」作爲序列化選項,因此接受的答案不再是正確的答案。
你可以閱讀更多關於自然鍵在Django serialization documentation
的文件明確提到了自然鍵是在該使用情況..
...對象自動Django在數據庫中創建的同步過程中,給定關係的主鍵不易預測;這將取決於遷移的執行方式和時間。所有自動生成對象的模型都是如此,特別是包括權限,組和用戶。
python manage.py dumpdata auth --natural-foreign --natural-primary -e auth.Permission
的auth_permissions表必須明確排除與
-e
標誌作爲表被填充:
因此,對於您的具體問題,關於auth_group_permissions
,你會使用以下語法轉儲夾具通過migrate
命令並且在加載燈具之前已經有數據。
然後該夾具將以與任何其他夾具相同的方式加載
相關問題
- 1. Django元權限
- 2. Django權限
- 3. Django權限隱藏「auth |權限」
- 4. Django的目錄權限配置問題
- 5. Django文件夾權限設置?
- 6. Pytest-django:設置用戶權限
- 7. Django FormWizard和權限
- 8. Django-cms ckeditor權限
- 9. Django的CMS權限
- 10. Django權限應用
- 11. Django的組權限
- 12. django權限錯誤?
- 13. Django權限管理
- 14. 安裝後設置文件權限
- 15. 設置安裝目錄的權限
- 16. 更改應用安裝位置權限
- 17. 設置權限
- 18. Django .is_superuser字段權限
- 19. Django Rest Framework權限衝突
- 20. Django的ManyToManyField到權限
- 21. Django網站框架權限
- 22. Django上傳文件權限
- 23. wsgi + django - 文件權限
- 24. apache中的django mkdir權限
- 25. 調試Django權限錯字
- 26. Django的自定義權限
- 27. Django中的層次權限
- 28. django-facebookconnect擴展權限
- 29. 自定義django-revproxy權限
- 30. app_label權限問題的Django