• Django-admin 的使用


    admin 组件的使用

    Django 提供功能十分强大的后台管理组件 admin 来实现自动管理。

    admin 是一个组件,与 APP 一样,项目启动一开始就加载了。在 setting.py 中的 INSTALLED_APPS 能够看到。

    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'Xadmin.apps.XadminConfig',
        'app01.apps.App01Config',
        'app02.apps.App02Config',
    ]
    

    激活 admin

    通常在 urls.py 文件中设置好有关 admin 的 url 就算是激活了。

    from django.conf.urls import url
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
    ]
    

    使用 admin

    admin 是后台管理工具,可以通过 http://127.0.0.1:8000/admin/ 访问到后台管理界面,管理员用户可以通过 python manage.py createsuperuser 命令创建。

    想要某个数据模型可以被 admin 管理需要提前进行注册。

    在每个 APP 下面都有 admin.py 这个文件,在该文件中进行数据模型的注册。

    from django.contrib import admin
    
    # Register your models here.
    from .models import *
    admin.site.register(Book)
    

    定制 admin

    在 admin.py 中对数据模型注册完事后就可以使用简单的增删改查等功能,如果想要定制更多的操作,需要通过 ModelAdmin 类进行操作。

    首先,创建继承于 ModelAdmin 的配置类:

    class BookConfig(admin.ModelAdmin):
        ...定制信息
    

    然后,对数据模型进行注册时加上配置类:

    admin.site.register(Book, BookConfig)
    

    ModelAdmin 提供的定制功能有:

    1.list_display 设置在列表中显示的列

    class BookConfig(admin.ModelAdmin):
    
    	def deletes(self):
            return mark_safe("<a href=''>删除</a>")
    		
        # 在展示页面会显示哪些字段内容,除了已有的字段,还可以添加自定义函数为字段显示
        list_display = ["title", "price", "publishDate", "publish", deletes]
    

    2.list_display_links 设置哪些列可以点击跳转到修改界面

    class BookConfig(admin.ModelAdmin):
        # 设置哪些字段内容转成可点击的链接,转到更改页面
        list_display_links = ["title", "price"]
    

    3.list_filter 在右侧设置可以筛选过滤的列

    class BookConfig(admin.ModelAdmin):
        # 设置可以用哪些字段进行分组过滤
        list_filter = ["title", "price", "publish"]
    

    4.search_fields 设置搜索时所搜索的列

    class BookConfig(admin.ModelAdmin):
        # 设置可以按照哪些字段进行搜索
        search_fields = ["title", "price"]
    

    5.actions 设置批处理的动作

    class BookConfig(admin.ModelAdmin):
        def patch_init(self, request, queryset):
            queryset.update(price=100)
    
        # 设置批量处理动作的描述名称
        patch_init.short_description = "批量初始化"
    
        # 设置批量处理的动作
        actions = [patch_init]
    

  • 相关阅读:
    Django框架
    Django框架
    Django框架
    Django框架
    Bootstrap框架
    前端之jQuery
    前端之BOM和DOM
    Flask框架配置管理
    lement-ui、接口、restful规范、drf、跨域问题
    Vue项目入口与小知识总结
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/9823998.html
Copyright © 2020-2023  润新知