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)

大家都在看

  • 哨兵+redis主从部署架构-docker部署

    架构图 哨兵的介绍 sentinel , 中文是哨兵。 哨兵是redis 集群架构中非常重要的一个组件,主要功能如下: (1)集群监控:负责监控reidis master 和sla…

    Linux 2023年5月28日
    096
  • 数据结构和算法的关系

    针对Python数据结构与算法(裘宗燕版)中的第一章绪论最后的问题 数据结构 概念 数据与数据之间的结构关系(数组、队列、树、图等结构) 类别 分为 逻辑数据结构和 存储数据结构两…

    Linux 2023年6月7日
    0159
  • window.parent、window.top、window.self

    在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口。 1.wi…

    Linux 2023年6月7日
    092
  • Linux备份之远程同步—rsync

    一、备份 1.1 什么是备份? 备份就是把重要的数据或者文件复制一份保存到另一个地方,实现不同主机之间的数据同步 1.2 为什么做备份? 数据在公司中是很重要的!!!备份就是为了恢…

    Linux 2023年5月27日
    0111
  • Linux基础学习(三)

    [root@ct7 ~]# grep -vc “/sbin/nologin” /etc/passwd [root@ct7 ~]# grep -v “/sbin/nologin” /…

    Linux 2023年6月8日
    097
  • Centos 7 上安装 jdk 及问题小记

    yum 下载安装 使用 yum -y list jav 或者 yum search jdk 查找 java 相关安装包的列表 yum -y list 搜&am…

    Linux 2023年5月27日
    0113
  • 搭建openvpn连接公司内网

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0130
  • SpringSecurity

    SpringSecurity 11.1 SpringSecurity简介 Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spr…

    Linux 2023年6月14日
    0101
  • Web前端基础精品入门(HTML+CSS+JavaScript+JS)[爱前端]听课笔记(1):网页中的logo的制作

    前边课程没有仔细记录 css 学习笔记 index.html如下: 网页显示 但是我们不需要在网页中显示文字,用如下式样 文字不见,但是搜索引擎还能找到文字 目前高度没有居中,如果…

    Linux 2023年6月14日
    0108
  • Python闭包

    前言 学习Python的单例实现的时候,遇到了下面这样的代码。很不理解为什么局部变量 _instance没有重新初始化。后来看到有人说这是闭包,于是又去了解了下 闭包。没想到闭包竟…

    Linux 2023年6月7日
    0105
  • Linux 中 图片的产生与查看

    使用场景 当在 Linux 的控制台想要显示一张图片,使用matplotlib.plt.plot() 和matplotlib.plt.show() 会报错。此时可以曲线救国,不直接…

    Linux 2023年6月7日
    085
  • shell之常用的一些命令2

    前言 自我感觉学习shell要常用man,–help这样挺方便去写的,光靠熟练远远不够的 bash;gutter:false;</p> <h1>!/bin…

    Linux 2023年6月8日
    089
  • 机器学习:单元线性回归(python简单实现)

    本篇文章主要记录和讲解使用python如何简单实现单元线性回归算法 文章简介 使用python简单实现机器学习中单元线性回归算法。 算法目的 该算法核心目的是为了求出假设函数h中多…

    Linux 2023年6月7日
    096
  • ESXI系列问题整理以及记录——使用Windows PowerShell中的SSH功能连接ESXI控制台

    首先进入ESXI管理页面,开启ESXI的SSH功能 接下来到位于同一局域网的Win主机上开启Powershell,如果ESXI主机的IP地址为192.168.1.77,则在Powe…

    Linux 2023年6月13日
    0132
  • tar压缩提示file changed as we read it

    压缩文件夹,过程中某个文件有变化,会提示 file changed as we read it 。不太确定是压缩到这里就中断了,还是压缩完,才提示的这个错误。 测试一下 做个实验,…

    Linux 2023年6月8日
    0177
  • 大小端存储是什么鬼?

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/htYGddzO2xPl9kDN4lANpQ 大小…

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