2012-02-27 51 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) 

(我使用的是活网站的代码和它的作品创造)

相关问题