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. 为什么选择器:last-child有时没有起作用?

    想要有.list样式的最后一个不要下划线.为什么:last-child没有起作用? el:last-child 的匹配规则是:第一步,查找 el 选择器匹配元素的所有同级元素(siblings):第二 ...

  2. 渗透神器CobaltStrike 3.1.2 去后门破解版 & Windows版TeamServer【转】

    转自我八师傅博客 CS简介 Cobalt Strike(简称CS)是全球黑客公认一款非常优秀的渗透测试神器,以metasploit为基础的GUI的框架式渗透工具,集成了传统远控功能(远程桌面VNC.键 ...

  3. 用python编写一个合格的ftp程序,思路是怎样的?

      经验1.一般在比较正规的类中的构造函数.都会有一个verify_args函数,用于验证传入参数.尤其是对于系统传参.2.并且系统传参,其实后面大概都是一个函数名 例如:python server. ...

  4. Vi编辑器中查找替换

    1 第一个是替换当前行的yesterday为all 第二个是替换全局的 yesterday 为all :s/yesterday/all :s/yesterday/all/g

  5. signal,blinker:信号(看我脸色行事)

    signal 什么是信号(signal)? 信号在linux中被用来进行进程间的通信和异步处理,简单地可以理解会为回调函数,当发送一个信号时,会触发相应的操作.python中的signal模块便是用来 ...

  6. 升级python导致yum报错的解决方法

    把python从2.7升级到3.6后 , 使用yum报错 File ‘’/usr/bin/yum'', line 30 except KeyboardInterrupt, e: ^ 故障原因:yum采 ...

  7. 常用数据存储格式之xml

    常用数据存储格式介绍 XML 被设计用来传输和存储数据,其焦点是数据的内容. HTML 被设计用来显示数据,其焦点是数据的外观. 语法规则: XML 文档必须有一个根元素 XML元素都必须有一个关闭标 ...

  8. 多个jar包合并成一个jar包(ant)

    https://blog.csdn.net/gzl003csdn/article/details/53539133 多个jar包合并成一个jar 使用Apache的Ant是一个基于Java的生成工具. ...

  9. SQL注入--盲注及报错注入

    盲注查询 盲注其实就是没有回显,不能直观地得到结果来调整注入数据,只能通过其他方式来得到是否注入成功,主要是利用了一些数据库内置函数来达到的 布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根 ...

  10. 【CF 482E】ELCA

    题意 题解 50pts 由于这题 \(2s\),所以可以信仰一波,暴力修改.查询. 暴力修改的复杂度是 \(O(n)\),暴力查询的复杂度是 \(O(n^2)\). 但不难发现可以通过记录子树大小来优 ...