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
          ()
        )


          

  • 相关阅读:
    CF 461B Appleman and Tree
    POJ 1821 Fence
    NOIP 2012 开车旅行
    CF 494B Obsessive String
    BZOJ2337 XOR和路径
    CF 24D Broken robot
    POJ 1952 BUY LOW, BUY LOWER
    SPOJ NAPTIME Naptime
    POJ 3585
    CF 453B Little Pony and Harmony Chest
  • 原文地址:https://www.cnblogs.com/zengsf/p/9972476.html
Copyright © 2011-2022 走看看