2012-02-27 62 views
1

我是Django的新手。我正在開發一個僅包含用戶作爲員工用戶的網站。我是管理員。我的計劃是註冊一個用戶,並給他他的用戶名和密碼登錄;我想他只有能夠編輯他的個人資料添加更多的信息,而不是改變現有的屬性。我怎樣才能做到這一點?職員用戶如何在Django admin中編輯他們的個人資料?

回答

0

最簡單的方法可能是創建一個適當的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) 

(我使用的是活網站的代碼和它的作品創造)

相關問題