django admin

django   admin


  • django项目创建的时候自动帮我们生成了admin的各个依赖的组件,我们在使用的时候直接访问    /admin   登录就可以了
  • 使用admin之间,首先要创建超级用户
    • python manager.py createsuperuser
  • 使用刚刚创建好的账号密码登录admin
  • 登录之后的界面

  • 注册自己的模型类
    • 创建模型类
      •  1 from django.db import models
         2 from apps.base_model import BaseModel
         3 
         4 
         5 # Create your models here.
         6 
         7 
         8 class Project(BaseModel):
         9     name = models.CharField(max_length=20)
        10 
        11     class Meta:
        12         db_table = 'tbl_project'
        13         verbose_name = '项目'
        14         verbose_name_plural = verbose_name

        在app的models里面创建模型类

    • 注册模型类
      • from django.contrib import admin
        from .models import Project
        
        # Register your models here.
        
        
        admin.site.register(Project)
      • 在models.py的同级目录下的admin里面注册该模型类
    • 刷新页面
      •  

    • 修改组名
      • from django.apps import AppConfig
        
        
        class ApiConfig(AppConfig):
            name = 'apps.api'
            verbose_name = 'api文档'
      • 在models.py的同级目录下的apps.py里面找到该项目的app类,增加verbose_name字段
      • 刷新页面
    • 修改表内容的显示方式
      • 原始的显示页面
      • 修改admin.py文件
        •  1 from django.contrib import admin
           2 from .models import Project
           3 
           4 
           5 # Register your models here.
           6 
           7 
           8 class ProjectAdmin(admin.ModelAdmin):
           9     list_display = ['id', 'name', 'insert_time', 'update_time']
          10 
          11 
          12 admin.site.register(Project, ProjectAdmin)

           创建一个管理类,继承admin.ModelAdmin,增加list_display属性,该属性为一个列表,字表里面的元素字符串都必须为被管理模型类的所有的字段,然后在注册模型类的时候将模型类的管理类一起注册

        • 修改后的显示页面
          •  

        • 其他属性作用详情
          •  1 from django.contrib import admin
             2 from .models import Project
             3 
             4 
             5 # Register your models here.
             6 
             7 
             8 class ProjectAdmin(admin.ModelAdmin):
             9     # 显示列表页的设置
            10     list_display = ['id', 'name', 'insert_time', 'update_time']  # 显示的字段
            11     ordering = ['id']  # 修改排序方式
            12     list_display_links = ['id', 'name']  # 制定字段点击跳转
            13     search_fields = ['name', 'insert_time', 'update_time']  # 制定搜索字段,当该字段未被定义时,搜索功能不存在
            14     list_filter = ['insert_time', 'update_time', 'delflag']  # 制定过滤字段,当该字段未被定义时,过滤功能不存在
            15     list_per_page = 2  # 制定每页显示的个数
            16 
            17     # 显示详情页的设置
            18     # fields = ['name', 'delflag']  # 制定显示详情页的内容,且和fieldsets属性冲突
            19     fieldsets = [  # 将详情页的显示内容分组显示,且和fields属性冲突
            20         ('详情', {'fields': ['name']}),
            21         ('设置', {'fields': ['delflag']}),
            22     ]
            23 
            24 
            25 admin.site.register(Project, ProjectAdmin)
        • 设置后的页面
          •  

         

posted @ 2019-08-12 23:24  Ivy丶  阅读(255)  评论(0编辑  收藏  举报