美文网首页
Django-后台管理

Django-后台管理

作者: 遇明不散 | 来源:发表于2019-05-17 11:39 被阅读0次

    后台的配置

    # 登录地址
    http://localhost:8000/admin
    
    # 创建后台管理员
    ./manage.py createsuperuser
    py manage.py createsuperuser
    

    基本管理

    在应用中的 admin.py 中注册要管理的数据
    • admin.py
      注册需要管理的Models类,只有在此注册的Models类才允许被管理
    • 注册Models
    from .models import *
    admin.site.register(Entry)
    
    通过Models类的内部类 Meta 来定义展现形式
    class Author(models.Model):
        # verbose_name 用于指定在后台显示的字段名称
        name = models.CharField(max_length=30,verbose_name='姓名')
        age = models.IntegerField(verbose_name='年龄')
        email = models.EmailField(null=True,verbose_name='邮箱')
        isActive = models.BooleanField(default=True,verbose_name='激活用户')
    
        class Meta:
          # db_table 指定该实体类映射到表的名称(该属性设置完成后需要同步回数据库)
          db_table = 'author'
          # verbose_name 定义实体类在 admin 中显示的名字(单数)
          verbose_name = '作者'
          # verbose_name_plural 定义实体类在 admin 中显示的名字(复数)
          verbose_name_plural = verbose_name
          # ordering 指定数据在后台管理中的排序方式,
          #          取值是一个列表,将排序的列表示在列表,默认升序,降序使用-
          ordering = ['-age']
    

    高级管理

    在 admin.py 中创建高级管理类并注册
    • 定义 EntryAdmin 类,继承自 admin.ModelAdmin
    • 注册高级管理类
    #  定义 EntryAdmin 类,继承自 admin.ModelAdmin
    class AuthorAdmin(admin.ModelAdmin):
        pass
    
    # 注册高级管理类
    admin.site.register(Entry,EntryAdmin)
    
    允许在EntryAdmin中增加的属性
    • list_display
      • 定义在列表页上显示的字段
      • 由属性名组成的元组或列表
    • list_display_links
      • 定义在列表页中也能够连接到详情页的字段
      • 由属性名组成的元组或列表
      • 取值必须要出现在list_display
    • list_editable
      • 定义在列表页中就允许修改的字段
      • 由属性名组成的元组或列表
      • 取值必须出现在list_display中但不能出现在list_display_links
    • search_fields
      • 添加允许被搜索的字段们
      • 由属性名组成的元组或列表
    • list_filter
      • 列表页的右侧增加过滤器,实现快速筛选
      • 由属性名组成的元组或列表
    • date_hierarchy
      • 列表页的顶部增加时间选择器,取值是DateFieldDateTimeField的列名
    • fields
      • 在详情页中,指定显示哪些字段并按照什么样的顺序显示
      • 由属性名组成的元组或列表
    • fieldsets
      • 在详情页面中,对字段进行分组显示
      • fieldsetsfields是不能共存
    fieldsets = (
        #分组1
        ('分组名称',{
            'fields':('属性1','属性2'), # 显示字段
            'classes':('collapse',)    # 显示效果
        }),
        #分组2
        ()
    )
    

    相关文章

      网友评论

          本文标题:Django-后台管理

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