如何隱藏管理中的字段用戶編輯?我主要是想隱藏的權限和團體在某些例外情況選擇,但不變量不工作:/Django管理員 - 如何隱藏用戶編輯中的一些字段?
回答
Django管理是不適合非常細粒度的控制,使他們沒有自動變量設計,讓這種類型的控制。
如果你需要這種類型的控制你將不得不去你自己。您需要覆蓋默認的管理模板。您可能會想要使用權限系統來跟蹤允許用戶執行的操作。
記住定製的你正在做的水平。在某種程度上遠遠超出預期目的,管理應用程序的限制將比簡單地滾動您自己的更細粒度的CRUD系統更多的工作。
我可能會遲到回答這個問題,但任何方式,在這裏不用。約翰在概念上是正確的,但我只是想這樣做,因爲我知道django admin
是真正靈活的。
任何方式就是你藏在用戶模式表單字段的方法是:ModelAdmin
類的
exclude
屬性可以用來隱藏字段。
2:本應允許在模型空白。
3:default
在模型字段上的屬性是一個優點,或者您可能會收到意想不到的錯誤。
我遇到的問題是,我用得到驗證錯誤。我看了一眼追溯,發現 的錯誤是因爲UserAdmin
的fieldsets
分組,默認permission
字段設置有user_permission
在你的sub-calassed模型admin中覆蓋這個。
在get_form
中使用exclude
屬性,您可以在其中訪問request
變量,並且可以根據用戶的權限或組對其進行動態設置。
代碼:
admin.py:
class MyUserAdmin(UserAdmin):
list_display = ("username","first_name", "last_name", "email","is_active","is_staff","last_login","date_joined")
## Static overriding
fieldsets = (
(None, {'fields': ('username', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
'groups')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
)
def get_form(self, request, obj=None, **kwargs):
self.exclude = ("user_permissions")
## Dynamically overriding
self.fieldsets[2][1]["fields"] = ('is_active', 'is_staff','is_superuser','groups')
form = super(MyUserAdmin,self).get_form(request, obj, **kwargs)
return form
我知道這是一個老問題,但是,這個線程安全嗎? 'self.exclude'是一個類屬性,所以你可以獲得不需要的結果。我想要走的路是重寫新的'get_fields','get_fieldsets'等方法。我對嗎? – argaen
@argaen你是對的;在初始化後分配給'self.exclude'(或任何其他類屬性,如'fields','readonly_fields'等)是不安全的,因爲每個進程創建的每個'ModelAdmin'只有一個實例。動態更改顯示哪些字段*必須使用'get_fields()'和類似的方法來完成。 –
- 1. 如何隱藏Drupal中「用戶編輯」表單上的某些字段?
- 2. 如何在jqgrid中爲用戶/管理員隱藏/顯示編輯按鈕?
- 3. Django管理員。上改變選擇字段隱藏場
- 4. 可以由管理員編輯的用戶字段?
- 5. 編輯Django中的.htaccess管理員
- 6. 創建僅顯示(不可編輯)的Django管理員字段
- 7. Django管理員以表格的方式編輯字段
- 8. Django管理員,隱藏模型
- 9. AuthLogic管理員用戶和隱藏非管理員的管理鏈接
- 10. 排除在Django管理員的用戶不超級管理員的字段
- 11. Django管理員如何確定顯示哪些字段
- 12. 刪除/隱藏用戶名字段在Django admin編輯用戶表格
- 13. 笨 - 編輯用戶以管理員
- 14. 如何向django管理員編輯視圖添加一些額外信息?
- 15. 如何在編輯來自其他用戶的評論時隱藏Fivestar字段?
- 16. Django管理員列表編輯
- 17. 編輯Django管理員註銷模板?
- 18. django管理員編輯外鍵內聯
- 19. 如何允許管理員用戶在Django中編輯電子郵件模板?
- 20. 編輯Django用戶管理模板
- 21. 對於Django的管理員,我如何添加一個字段到用戶模型,並讓它在管理員中可編輯?
- 22. cck隱藏字段,填充編輯用戶
- 23. Django管理 - 當我使用Django管理員刪除一些用戶無法刪除某些用戶
- 24. 在Django中按用戶名字段搜索管理員
- 25. 隱藏Drupal管理員
- 26. 安卓系統 - 隱藏管理員用戶的多個用戶
- 27. django管理員權限 - 可以編輯用戶,但無法編輯他的權限 - 如何做到這一點?
- 28. 編輯可見性隱藏的字段
- 29. Django管理員用戶
- 30. Django管理員 - 讓用戶訪問特定的對象/字段?
可以,只要你真正閱讀本手冊達到非常高的水平細粒度控制。 – Shayne