models 在 models.py 中定义,每个 model 是一个 class:

from django.db import models
class PerformanceData(models.Model):
name = models.CharField('name', max_length=200, unique=True)
date = models.DateTimeField('date')

自定义 object 的显示

def __unicode__(self): # 如果是 python3 使用 __str__
return u'%s %s' % (self.name, self.date)

在 admin.py 中定义 PerformanceDataAdmin 继承 admin.ModelAdmin, 进一步对 model 进行设置:

class PerformanceDataAdmin(admin.ModelAdmin):
list_display=('name', 'date') # 显示表格的表头
list_per_page = 50 # 每页显示 50 条记录
ordering = ('-name',) # 用 name 属性排序, '-' 表示倒序排列
list_filter =('name', 'date') # 设置过滤器
search_fields =('name', 'date') # 设置搜索框中允许搜索的字段
actions = [add_one_copy,] # 添加一个 action, 需要定义函数 add_one_copy admin.site.site_header = 'Test Management' # 设置标题
admin.site.site_title = 'Test Management' # 设置标题
admin.site.register(PerformanceData, PerformanceDataAdmin) # 注册

设置字段颜色,在 models.py 中定义新的字段如下:

from django.db import models
from django.utils.html import format_html class PerformanceData(models.Model):
name = models.CharField('name', max_length=200, unique=True)
date = models.DateTimeField('date')
def colored_name(self):
if self.name == '':
color_code = 'green'
else:
color_code = 'red' return format_html(
'<span style="color: #{};">{}</span>',
color_code,
self.name,
)

在 admin.py 中需要改为

list_display=('colored_name', 'date') # 显示表格的表头

更改表头的显示文字

colored_name.short_description = 'MY_NAME'

注意,要先为字段在 models.py 中定义一个类似 colored_name 的方法,并设置 short_description,然后在 admin.py 的 list_display 中使用这个新的方法定义。例如:

class PerformanceData(models.Model):
name = models.CharField('name', max_length=200, unique=True)
date = models.DateTimeField('date')
def short_date(self):
return self.date
    short_date.short_description = 'MY_DATE'
list_display=('colored_name', 'short_date') # 显示表格的表头

为表格添加 actions

def add_one_copy(modelAdmin, request, queryset):
add_one_copy.short_description = 'Select and add one copy'
for i in queryset:
print(i.date)
class PerformanceDataAdmin(admin.ModelAdmin):
actions = [add_one_copy,] # 添加一个 action, 需要定义函数 add_one_copy

为 model 添加 create 函数,可以调用这个函数增加新的条目

from django.db import models
from datetime import * class PerformanceData(models.Model):
name = models.CharField('name', max_length=200, unique=True)
date = models.DateTimeField('date')
@classmethod
def create(cls, _name, _date):
obj = cls(name=_name, date=_date)
return obj
obj = PerformanceData.create('hello', datetime(1980,10,11))
obj.save()

Django admin 设置和定制的更多相关文章

  1. django admin 设置(转载https://www.cnblogs.com/wumingxiaoyao/p/6928297.html)

    Django admin 一些有用的设置   Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...

  2. Django Admin 配置和定制基本功能(基本二次开发配置)

    一 列表显示页面  1. list_display,列表时,定制显示的列 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdm ...

  3. django admin的自定制

    from django.contrib import admin # Register your models here. from .models import * from django.util ...

  4. Django admin自定制功能

    一:基础设置 1.应用注册 1)方式一 若要把app应用显示在后台管理中,需要在admin.py中注册.打开admin.py文件,如下代码: from django.contrib import ad ...

  5. Django admin 一些有用的设置

      Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸索总结出比较实用的配置.若你有什么比较好的 ...

  6. DJANGO ADMIN 一些有用的设置(转)

    DJANGO ADMIN 一些有用的设置   Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...

  7. django之admin设置

    Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸索总结出比较实用的配置.若你有什么比较好的配置 ...

  8. Django admin定制化,User字段扩展[原创]

    前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...

  9. Django Admin 图片路径设置显示为图片(imageField显示方法设置)

    一  使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7  (Windows x86-64 executable in ...

随机推荐

  1. python 运算符与流程控制

    运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...

  2. chrome79开发者工具代码高亮失效的解决办法

    升级chrome最新版本后,存在开发者工具Sources内代码高亮失效的情况 解决办法: 1. 开发者工具面板右上角菜单->Setting->Preferences 2. 将Theme切换 ...

  3. deployment控制pod进行滚动更新以及回滚

    更新pod镜像两种方式: 方式一:kubectl set image deployment/${deployment name} ${container name}=${image} 例: kubec ...

  4. Python测试开发必知必会-PEP

    互联网发展了许多年,不仅颠覆了很多行业,还让很多职位有了更多的用武之地.产品发布迭代速度不断加快,让测试开发这个岗位简直火得不要不要的. Python语言,作为一种更接近人来自然语言的开发语言,以简洁 ...

  5. 01-spring框架——spring概述

    Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring 的核心是控制反转(IoC)和面向切面编程(AOP).Spring 是可以 ...

  6. usb server

    usb server 是通道型的,驱动在客户端安装 服务端不需要驱动

  7. CentOS 7 安装 metasploit-framework

    1 一键安装metasploit-framework apt-get install curl,wgetcurl https://raw.githubusercontent.com/rapid7/me ...

  8. C++ Primer 第 5 版 习题参考答案

    从 5 月初 - 8 月 16 日,每天基本都在啃 C++ 的语法.起初直接看C++ Primer 中文版(第 5 版),发现后边的章节看着很吃力.所以就转而看了清华大学郑莉老师和李超老师的视频C++ ...

  9. mysql向redis导入数据

    数据库结构如下 如果是linux系统下,如此整备数据 SELECT CONCAT( "*10\r\n", '$', LENGTH(redis_cmd), '\r\n',redis_ ...

  10. 【BZOJ 3682】Phorni

    题目链接 题目描述 Phorni 是一个音之妖精,喜欢在你的打字机上跳舞. 一天,阳光映射到刚刚淋浴过小雨的城市上时,Phorni 用魔法分裂出了许多个幻影,从 1 到 n 编号. 她的每一个幻影都站 ...