1
我是Django的新手。我正在開發一個僅包含用戶作爲員工用戶的網站。我是管理員。我的計劃是註冊一個用戶,並給他他的用戶名和密碼登錄;我想他只有能夠編輯他的個人資料添加更多的信息,而不是改變現有的屬性。我怎樣才能做到這一點?職員用戶如何在Django admin中編輯他們的個人資料?
我是Django的新手。我正在開發一個僅包含用戶作爲員工用戶的網站。我是管理員。我的計劃是註冊一個用戶,並給他他的用戶名和密碼登錄;我想他只有能夠編輯他的個人資料添加更多的信息,而不是改變現有的屬性。我怎樣才能做到這一點?職員用戶如何在Django admin中編輯他們的個人資料?
最簡單的方法可能是創建一個適當的ModelForm和一個相應的視圖,用於檢查用戶想要更新的實例是否是自己的實例。
我想直接在管理後臺集成這個,你也可以這樣做。最簡單的方法可能是爲User
創建一個自己的ModelAdmin
類,該類具有覆蓋的正確方法(請參閱開始here的方法)。我認爲你應該從重寫has_change_permission
開始,你可以檢查用戶試圖編輯的對象是否是他自己的,否則返回False。
要替換標準的用戶的ModelAdmin你需要做一點點fiddeling在admin.py:
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
# add the code here
# deregister the standard AdminModel and register the own one
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
(我使用的是活網站的代碼和它的作品創造)