美文网首页测试开发
Django_配置自带的Admin后台(二)

Django_配置自带的Admin后台(二)

作者: 古佛青灯度流年 | 来源:发表于2018-04-28 19:32 被阅读17次

学习思路

  • 针对这种框架性的东西,或者新的东西,我的学习思路是结合业务内容,先动手做起来,在使用的过程中遇到不会的在一一克服,这样有目的性的去学习一些东西。

Admin后台

要说自带的后台真的很强大,满足日常需要完全没问题。
举例说明:


from django.contrib import admin #引入admin
from .models import *  # 引入model类,就是你建的表
from django.contrib.auth.models import Group # 可以通过这个查看当前用户所属的分组,超赞
import logging  # 引入日志,想要使用,需要在配置文件中提前配置,下一篇文件写日志吧。
log = logging.getLogger(__name__)   # 使用方法

# Register your models here.
@admin.register(allow_list) # 在admin后台注册这个model,就是你的表
class allow_listAdmin(admin.ModelAdmin): # 继承这个
    "获取验证码表"
    module = allow_list   # 这个表示你用哪个表
    list_per_page = 50    # 设置一页多少条数据
    list_display = (
        'id','oem','mac'    # 设置下,你要把表的哪些字段展示在页面上。
    )
    # 筛选器
    search_fields = list_display  # 就是搜索框中可以搜到的搜索字段
    list_display_links = list_display  # 这个意思是在查看列表时,哪些字段是可以直接点击的。
    # list_editable = ['bug_status'] # 这个表示列表查看页面,哪个字段可以直接编辑。但是这个字段不能跟list_display中有重合的,他俩会冲突的。
    ordering = ('-id',)  # 字面意思,排序,列表展示排序的
    def changelist_view(self, request, extra_context=None):# 方法名就是字面意思,这个是重写admin方法,默认是全部可见的,现在我要做下修改。
        current_user_set = request.user  # 在view中,都有一个request默认对象,这样就能获取到当前登录的用户。
        if not current_user_set.is_superuser: # 判断当前用户是不是超级管理员。内置方法。
            current_group_set = Group.objects.get(user=current_user_set) # 根据的当前登录的用户找到用户的分组
            if current_group_set.name != '超级管理员' and current_group_set.name != '内容-管理员':# 通过分组确定字段是否展示,当然了你也可以干别的事情。
                self.readonly_fields = self.list_display # 设置只读字段,不允许这个人编辑了
        return super(allow_listAdmin, self).changelist_view(request, extra_context=None)# 返回对象

效果图:

image.png

相关文章

网友评论

    本文标题:Django_配置自带的Admin后台(二)

    本文链接:https://www.haomeiwen.com/subject/isnhkftx.html