zoukankan      html  css  js  c++  java
  • 后台管理Models

    1.后台的配置
      登录地址 :http://localhost:8000/admin

      创建后台管理员(超级用户):
      在终端输入:./manage.py createsuperuser
        Username : 输入用户名,默认为系统账户名
        Email Address : 电子邮件
        Password : 密码
        Password(again) : 确认密码

    2.Models的基本管理

      1.在应用中的 admin.py 中注册要管理的实体类
        1.admin.py
          作用:注册要管理的Models类,只有注册后才能管理
        2.注册Models
          from .models import *
          admin.site.register(Entry)

    from .models import *
    
    # Register your models here.
    # 第一个参数是实体类,第二个是高级管理类的类名。
    admin.site.register(Author,AuthorAdmin)

      2.修改Models提升可读性
        1.重写每个实体类中的 __str__()
          后台显示的将以 __str__ 的返回值为准

    def __str__(self):
        return self.name

      3.通过Models类的内部类Meta定义其展现形式

    class Author(models.Model):
      ... ...
        class Meta:
            #1.指定映射到的表的名称(改属性完成后需要同步数据库,要不然后面可能会报错)
            db_table = 'author'
            #2.定义在后台的admin中显示名称(单数)
            verbose_name = '作者'
            #3.定义在后台的显示名称(复数)
            verbose_name_plural = verbose_name
            #4.定义数据在后台的排序方式,前面添加-,表示降序排
            ordering = ['-age','id']

    3.Models的高级管理

      1.在 admin.py 中创建高级管理类并注册
        1.定义 EntryAdmin 类 ,继承自 admin.ModelAdmin
          class AuthorAdmin(admin.ModelAdmin):
          pass
        2.注册高级管理类
          admin.site.register(Entry,EntryAdmin)
          ex:
            admin.site.register(Author,AuthorAdmin)

      2.允许在EntryAdmin中添加属性

      1.list_display
        作用:定义在列表页上显示的字段
        取值:由属性名组成的元组或列表,以下的list_display_links,list_editable,search_fields,list_filter,fields都是这样的取值方式。

    # 定义显示在列表页上的字段
    list_display = ('name','age','email')

    2.list_display_links
    作用:定义在列表页上也能够链接到详情页的字段
    注意:取值必须要出现在list_display中

    # 定义允许链接到详情页的字段们
    list_display_links = ('email','name')

    3.list_editable
    作用:定义在列表页上就能够修改的字段们
    注意:取值必须要出现在list_display中但不能出现在list_display_links中

    # 定义在列表页中就允许修改的字段
    list_editable = ('age',)

    4.search_fields
    作用:定义搜索栏中允许搜索的字段值们

     # 定义搜索字段
     search_fields = ('name',)

    5.list_filter
    作用:列表页的右侧在增加过滤器实现快速筛选

    # 定义右侧过滤器
    list_filter = ('name','age')

    6.date_hierarchy
    作用:列表页的顶部增加一个时间选择器,
    取值:属性必须是 DateField 或 DateTimeField 的列

    # 增加时间选择器
    date_hierarchy = 'book_date'  # 时间字段

    7.fields
    作用:在详情页面中,指定要显示哪些字段并按照什么样的顺序显示

    #指定在详情页上显示的字段以及顺序,如果还有多余的字段没有写的话,那就不显示。
    fields = ('name','email','age')

    8.fieldsets
      作用:在详情页面中对字段们进行分组显示
      注意:fieldset 与 fields 不能共存
      取值:
        fieldsets = (
          #分组1
          ('分组名称',{
            'fields':('属性1','属性2'),
            'classes':('collapse',)     #如果加了这个,表示可以收缩显示。
          }),
          #分组2
          ()
        )


          

  • 相关阅读:
    3月6日
    2月28日
    2月23日
    2月20日
    2月19日
    2月18日
    2月17日
    2月16日
    2月15日
    面试算法题——硬币找零
  • 原文地址:https://www.cnblogs.com/zengsf/p/9972476.html
Copyright © 2011-2022 走看看