码迷,mamicode.com
首页 > 其他好文 > 详细

Django Admin 添加readonly用户

时间:2014-10-01 01:26:40      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:django admin 添加readonly用户

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用户

标签:django admin 添加readonly用户

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

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