4
A
回答
6
我不知道我知道你想要做什么,但如果是在你的心中是有内置的教师用户略有不同工作的用户管理页面,那么我相信你必须要延长UserAdmin
,并覆盖queryset
方法。
class TeacherSpecificUserAdmin(UserAdmin):
def queryset(self, request):
if request.user.is_teacher():
return Teacher.objects.filter(pk=request.user.pk)
return UserAdmin.queryset(self, request)
这会照顾禁止教师进行编辑或删除其他记录的,因为如果你在ModelAdmin
代码,change_view
和delete_view
方法看使用查询集从queryset
方法返回去更改或删除的对象。
需要再调整一次,因为用于更改UserAdmin
中的密码的视图不会使用与其他视图相同的系统来更改对象。只需在您的新课程中覆盖它:
...
def user_change_password(self, request, id):
if request.user.is_teacher() and request.user.pk != int(id):
# PermissionDenied is in django.core.exceptions
raise PermissionDenied
return UserAdmin.user_change_password(self, request, id)
...
之后,您只需阻止教师添加新用户或删除他们自己的记录。做,要么使用默认,或通过重写has_add_permission
和has_delete_permission
方法。
看看ModelAdmin
的源代码,如果你想要更多的信息(在contrib/admin/options.py
)。
1
目前没有简单的方法来做到这一点,但object level permissions即将在Django 1.2 - 即使你必须做一些工作,让它在管理员工作。
幸运的是有一个Django Advent article这可以解释你需要做什么。
3
有可能是没有办法做到这一点的生成。
权限每对象类型的全局设置,而不是每个特定对象实例。例如,它可以说“玛丽可以修改的新闻故事,”但它不是目前可以说“玛丽可以修改的新闻故事,但只有那些她创造自己”或者“玛丽只能改变有一定的地位新闻报道,出版日期或ID。“后者的功能是Django开发人员目前正在讨论的内容。
但是,显然,object level permissions即将到来。
相关问题
- 1. 如何防止用户更改/删除其他用户数据
- 2. 管理SP2010用户配置文件作为用户配置文件管理员
- 3. 如何防止用户表单进入其他用户配置文件
- 4. 如何禁止管理员更改Django admin中的实例?
- 5. 防止用户在DNN上看到其他配置文件
- 6. 如何防止其他用户下载/打开其他文件?
- 7. 如何防止用户在改变ASP.NET其他用户数据MVC
- 8. Django - 约会网站的用户模型 - 管理员/员工+其他用户
- 9. 在Django中扩展用户配置文件。管理员创建用户
- 10. 在Django管理员中,如何设置按用户名搜索配置文件?
- 11. Facebook如何管理数据库中的用户配置文件?
- 12. 如何使用cancan停止用户编辑其他用户配置文件?
- 13. 允许管理员制作其他管理员用户导轨
- 14. 防止网址篡改访问其他用户的数据
- 15. Django管理员用户
- 16. 如何防止非管理员用户禁用Outlook 2007Addin?
- 17. 防止用户更改.gitignore文件?
- 18. 获取其他用户firebase的管理员用户?
- 19. 用Wordpress管理用户配置文件
- 20. DJANGO调用其他用户的配置文件
- 21. 如何防止用户编辑或删除其他用户帖子? Django的
- 22. 登录的用户访问其他用户的配置文件
- 23. 管理员用户允许删除和编辑其他用户
- 24. Django刷新页面如果其他用户更改数据
- 25. 管理ASP.NET用户配置文件
- 26. Django:用户配置文件似乎是防止syncdb
- 27. 用户拥有/管理其他用户
- 28. 如何限制ActiveAdmin上指定管理员的新用户创建(防止用户创建更多用户)
- 29. Wordpress将用户更改为管理员
- 30. 如何设置Django Admin在其用户配置文件选项卡中显示所有用户的属性?
+1 Thanks Clement!我试图了解user_change_password()。阅读代码真的很值得。 – Viet 2010-02-18 12:16:19