0
我想让不同的用户组访问我的Django站点的管理部分,并控制他们可以访问哪些字段。我计划使用自定义的ModelAdmin
对象来执行此操作,该对象根据当前用户的组成员资格决定要添加到fieldsets
属性的内容。限制用户组管理的字段
- 这是否安全(即,如果一个字段没有显示,并且管理员使用萤火虫或其他东西来改变窗体,Django会停止它)?
- 这是最好的方式去做这件事?
我想让不同的用户组访问我的Django站点的管理部分,并控制他们可以访问哪些字段。我计划使用自定义的ModelAdmin
对象来执行此操作,该对象根据当前用户的组成员资格决定要添加到fieldsets
属性的内容。限制用户组管理的字段
是的,这是安全的,因为它是处理服务器端。我不知道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