django admin用法

django admin用法

基本使用

from django.contrib import admin
from .models import *

Register your models here.

@admin.register(Question)  # Question是表
class QuestionAdmin(admin.ModelAdmin):
    fields = [
        # 'question_text', 放在pub_date的上面那么在展示的时候就会在它的上面,按列表索引顺序展示
        'pub_date',
        'question_text',
    ]

django admin用法

给几个字段加标题

class QuestionAdmin(admin.ModelAdmin):
    fieldsets = [
        (None, {'fields': ['pub_date']}),
        ('question_info', {'fields': ['question_text']})
    ]

fieldsets 元组中的第一个元素是字段集的标题。以下是我们的表单现在的样子:

django admin用法

添加关联的对象

写一个继承TabularInline的类,里面的model写被关联的model,然后在inlines里加入该类就可以了

class ChoiceLine(admin.TabularInline):
    model = Choice  # 指定关联表
    extra = 3  # 一次可以添加关联对象的数量

@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
    fieldsets = [
        (None, {'fields': ['pub_date']}),
        ('question_info', {'fields': ['question_text']})
    ]
    inlines = [ChoiceLine]  # 在这里加入新写的类

django admin用法

如果要在展示的时候区分开来的话可以继承StackedInline类,下面是效果

class ChoiceLine(admin.StackedInline):
    model = Choice  # 指定关联表
    extra = 3  # 一次可以添加关联对象的数量

@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
    fieldsets = [
        (None, {'fields': ['pub_date']}),
        ('question_info', {'fields': ['question_text']})
    ]
    inlines = [ChoiceLine]  # 在这里加入新写的类

django admin用法

自定义后台展示列表字段

默认情况下,Django 显示每个对象的 str() 返回的值。但有时如果我们能够显示单个字段,它会更有帮助。为此,使用 list_display 后台选项,它是一个包含要显示的字段名的元组,在更改列表页中以列的形式展示这个对象:

class QuestionAdmin(admin.ModelAdmin):
    # ...

    list_display = ('question_text', 'pub_date')

另外,让我们把 model中定义的 was_published_recently() 方法也加上:

class QuestionAdmin(admin.ModelAdmin):
    # ...

    list_display = ('question_text', 'pub_date', 'was_published_recently')

现在修改投票的列表页看起来像这样:

django admin用法

你可以点击列标题来对这些行进行排序——除了 was_published_recently 这个列,因为没有实现排序方法。顺便看下这个列的标题 was_published_recently,默认就是方法名(用空格替换下划线),该列的每行都以字符串形式展示出处。

过滤功能

再次编辑文件 polls/admin.py,优化 Question 变更页:过滤器,使用 list_filter。将以下代码添加至 QuestionAdmin

list_filter = ['pub_date']

这样做添加了一个”过滤器”侧边栏,允许人们以 pub_date 字段来过滤列表:

django admin用法

展示的过滤器类型取决你你要过滤的字段的类型。因为 pub_date 是类 DateTimeField,Django 知道要提供哪个过滤器:”任意时间”,”今天”,”过去7天”,”这个月”和”今年”。

搜索功能

search_fields = ['question_text']

在列表的顶部增加一个搜索框。当输入待搜项时,Django 将搜索 question_text 字段。你可以使用任意多的字段——由于后台使用 LIKE 来查询数据,将待搜索的字段数限制为一个不会出问题大小,会便于数据库进行查询操作。

django admin用法

Original: https://www.cnblogs.com/zonghan/p/16593393.html
Author: zong涵
Title: django admin用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611290/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Macbook pro 2015-mid 15寸 安装Debian时所需无线网卡驱动

    https://pan.baidu.com/s/1o1oUZhK17fpgxpwH6bBkRQ?pwd=6kpt 把该文件放到u盘的firmware/目录下即可。 给自己留个备份,…

    Linux 2023年6月6日
    0147
  • 嵌入式软件架构设计-函数调用

    1 前言 函数调用很好理解,即使刚学没多久的朋友也知道函数调用是怎么实现的,即调用一个已经封装好的函数,实现某个特定的功能。 把一个或者多个功能通过函数的方式封装起来,对外只提供一…

    Linux 2023年6月7日
    0101
  • Kubernetes 部署Dashboard UI

    实践环境 CentOS-7-x86_64-DVD-1810 Docker 19.03.9 Kubernetes version: v1.20.5 发布 Dashboard 可以通过…

    Linux 2023年5月27日
    0145
  • docker 安装mysql5.7

    docker 安装mysql5.7 前言 MySQL 是目前最流行的关系型数据库管理系统,开发者是瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网…

    Linux 2023年6月6日
    0102
  • MySQL常见问题以及解决方法

    MySQL常见问题以及解决方法 数据损坏或丢失 serverid不唯一 主从节点存在复制延迟 主从节点数据不一致 数据表主键冲突 数据损坏或丢失 Master:采用MHA+semi…

    Linux 2023年6月7日
    0113
  • 子网掩码、前缀长度、IP地址数的换算

    子网掩码、前缀长度、IP地址数的换算 子网掩码 子网掩码只有一个功能,就是将IP地址划分为网络地址和主机地址两部分。 如同现实生活中的通讯地址,可以看作省市部分和具体门牌号部分。相…

    Linux 2023年6月6日
    0257
  • 008 Linux 文件查找 find

    在 Linux 系统,find 毫无疑问是最强的文件查找工具。find 一般会与其他命令结合,将查找到的结果作为参数传入到后置命令中,进行删除、统计、复制迁移等操作。 find /…

    Linux 2023年5月27日
    0104
  • 用python实现markdown转html

    1. 前言 现在markdown已经是非常常用的记录工具了,整齐的排版、代码高亮、图片表格样样齐全,同时也支持html标签,是非常好用的一种工具(语法)。 那么今天来分享一下使用p…

    Linux 2023年6月14日
    0133
  • spring-data-redis 2.0 的使用

    在使用Spring Boot2.x运行Redis时,发现百度不到顺手的文档,搞通后发现其实这个过程非常简单和简洁,觉得有必要拿出来分享一下。 Spring Boot2.x 不再使用…

    Linux 2023年5月28日
    0123
  • 如何在 pyqt 中解决启用 DPI 缩放后 QIcon 模糊的问题

    问题描述 如今显示器的分辨率越来越高,如果不启用 DPI 缩放,软件的字体和图标在高分屏下就会显得非常小,看得很累人。从 5.6 版本开始,Qt 便能支持 DPI 缩放功能,Qt6…

    Linux 2023年6月7日
    0210
  • 最简单的,在win,linux中,用powershell,自动获取Let’s Encrypt证书方法

    powershell传教士原创 2020-04-12,2022-05更新 Let’s Encrypt证书有效期3个月,支持泛域名【*.你的网站.net】。支持n天内(一…

    Linux 2023年6月14日
    0109
  • 一文聊透 Netty 核心引擎 Reactor 的运转架构

    本系列Netty源码解析文章基于 4.1.56.Final版本 本文笔者来为大家介绍下Netty的核心引擎Reactor的运转架构,希望通过本文的介绍能够让大家对Reactor是如…

    Linux 2023年6月6日
    095
  • 华为学习笔记一初识VRP

    VRP简介 VRP是Versatile Routing Platform的简称,是华为公司从低端到高端的全系列路由器、交换机等数据通信产品的通用网络操作系统。华为网络设备功能的配置…

    Linux 2023年6月7日
    0138
  • cobbler

    cobbler 1. cobbler简介 2. cobbler服务端部署 cobbler简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速…

    Linux 2023年6月7日
    088
  • 学习一下 JVM (一) — 了解一下 JVM 基本概念

    一、JVM 基本认识 1、虚拟机 与 JVM (1)虚拟机(Virtual Machine),可以理解为一台虚拟的计算机,其是一款软件,用来执行一系列虚拟的计算机指令。可以分为:系…

    Linux 2023年6月11日
    0122
  • Java面向对象之各种变量详解

    在Java中一定有很多变量让大家头疼,成员变量、类变量、局部变量等等,今天就来分别认识认识他们吧! Java面向对象之各种变量详解 前言 在 Java语言中, 根据定义变量位置的不…

    Linux 2023年6月13日
    088
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球