首页 > 其他 > 详细

Django Admin 添加readonly用户

时间:2014-09-30 23:46:50      阅读:380      评论:0      收藏:0      [点我收藏+]

Django默认没有只读权限,只能自己实现。查看了大量的资料,总算搞定了。

  1. 修改admin.py

    from django.contrib.admin.util import flatten_fieldsets #引入类

    class GconfAdmin(admin.ModelAdmin):

        list_display=(‘mailserver‘,‘mailsender‘,‘mail_on_off‘,‘sms_on_off‘)

        #搜索字段

        search_fields=(‘mailserver‘,‘mailsender‘,‘mail_on_off‘,‘sms_on_off‘)

        def get_readonly_fields(self,request,obj=None):

            if not request.user.is_superuser and request.user.username==‘readonly‘:

                return [f.name for f in self.model._meta.fields]

            return self.readonly_fields

    在Admin类中新增红色部分

  2. root用户登录django界面,新建readonly用户,并赋予change权限即可(用户必须有change权限)

 

  此方法有个缺点就是每个mymodelAdmin类都需要添加get_readonly_fields函数

   优化方法:

   在在项目app下创建custom_model_admin.py  

    from django.contrib import admin

    from django.contrib.admin.util import flatten_fieldsets

    

    class CustomModelAdmin(admin.ModelAdmin):

       

        def get_readonly_fields(self,request,obj=None):

            if not request.user.is_superuser and request.user.username==‘readonly‘:

                return [f.name for f in self.model._meta.fields]

            return self.readonly_fields

     在admin.py 中引用这个类

      from myapp.custom_model_admin import CustomModelAdmin

      将admin.ModelAdmin替换成CustomModelAdmin 即可

Django Admin 添加readonly用户

原文:http://961911.blog.51cto.com/951911/1560016

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!