用户组限制admin中的字段

时间:2012-01-28 02:37:56

标签: django django-admin

我想让不同的用户组访问我的Django站点的Admin部分,并控制他们能够访问哪些字段。我计划使用自定义ModelAdmin对象执行此操作,该对象根据当前用户的组成员身份决定要添加到fieldsets属性的内容。

  • 这是否安全(即,如果没有显示某个字段,并且管理员使用firebug或其他东西来更改表单,Django会阻止它吗?)
  • 这是最好的方法吗?

1 个答案:

答案 0 :(得分:0)

是的,这是安全的,因为它是在服务器端处理的。我不了解fieldsets。您可以使用get_form解决此问题。例如(取自this answer):

def get_form(self, request, obj=None, **kwargs):
    current_user = request.user
    if not current_user.profile.is_manager:
        self.exclude = ('added_by',)
        self.list_display = ('name', 'finish')
    form = super(MovieAdmin, self).get_form(request, obj, **kwargs)
    form.current_user = current_user
    return form