码迷,mamicode.com
首页 > Web开发 > 详细

django中根据用户的权限,显示change_list.html的内容和change_form.html中显示的字段

时间:2017-09-14 13:14:25      阅读:691      评论:0      收藏:0      [点我收藏+]

标签:登录   ret   根据   pass   权限   first   编辑   port   partner   

应用需求: 设置好用户的权限之后, 用户登录后台之后,需要根据用户的权限,用户属于哪个组,显示哪些成员。 并且进入用户编辑页面之后, 设置显示用户的字段和字段显示方式

 

class MyUserAdmin(UserAdmin):

  def get_queryset(self, request):  //通过get_queryset函数可以过滤出组的成员, 或者这个过滤的规则有你自己定也行
    qs = super(MyUserAdmin, self).get_queryset(request)
    if request.user.is_superuser:
      return qs
    else:
      return qs.filter(groups__name=mall_admin_group) | qs.filter(groups__name=mall_partner_group)

  def get_fieldsets(self, request, obj=None): //通过get_fieldsets 过滤是否在User form page 显示相关字段
    if not obj:
      return self.add_fieldsets
    if request.user.is_superuser:
      perm_fields = (‘is_active‘, ‘is_staff‘, ‘is_superuser‘, ‘groups‘, ‘user_permissions‘)
    else:
      perm_fields = (‘is_active‘, ‘is_staff‘, ‘groups‘)

    return [(None, {‘fields‘: (‘username‘, ‘password‘)}), (_(‘Personal info‘), {‘fields‘: (‘first_name‘, ‘last_name‘, ‘email‘)}), (_(‘Permissions‘), {‘fields‘: perm_fields}), (_(‘Important dates‘), {‘fields‘: (‘last_login‘, ‘date_joined‘)})]

admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

 

 

django中根据用户的权限,显示change_list.html的内容和change_form.html中显示的字段

标签:登录   ret   根据   pass   权限   first   编辑   port   partner   

原文地址:http://www.cnblogs.com/learning-skills/p/7519891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!