2012-01-28 43 views
0

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

  • 这是否安全(即,如果一个字段没有显示,并且管理员使用萤火虫或其他东西来改变窗体,Django会停止它)?
  • 这是最好的方式去做这件事?

回答

0

是的,这是安全的,因为它是处理服务器端。我不知道fieldsets。你可以通过使用get_form来解决它。 E.g(取自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