Django admin 设置和定制
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 设置和定制的更多相关文章
- django admin 设置(转载https://www.cnblogs.com/wumingxiaoyao/p/6928297.html)
Django admin 一些有用的设置 Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...
- Django Admin 配置和定制基本功能(基本二次开发配置)
一 列表显示页面 1. list_display,列表时,定制显示的列 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdm ...
- django admin的自定制
from django.contrib import admin # Register your models here. from .models import * from django.util ...
- Django admin自定制功能
一:基础设置 1.应用注册 1)方式一 若要把app应用显示在后台管理中,需要在admin.py中注册.打开admin.py文件,如下代码: from django.contrib import ad ...
- Django admin 一些有用的设置
Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸索总结出比较实用的配置.若你有什么比较好的 ...
- DJANGO ADMIN 一些有用的设置(转)
DJANGO ADMIN 一些有用的设置 Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...
- django之admin设置
Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸索总结出比较实用的配置.若你有什么比较好的配置 ...
- Django admin定制化,User字段扩展[原创]
前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...
- Django Admin 图片路径设置显示为图片(imageField显示方法设置)
一 使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7 (Windows x86-64 executable in ...
随机推荐
- 为什么选择器:last-child有时没有起作用?
想要有.list样式的最后一个不要下划线.为什么:last-child没有起作用? el:last-child 的匹配规则是:第一步,查找 el 选择器匹配元素的所有同级元素(siblings):第二 ...
- 渗透神器CobaltStrike 3.1.2 去后门破解版 & Windows版TeamServer【转】
转自我八师傅博客 CS简介 Cobalt Strike(简称CS)是全球黑客公认一款非常优秀的渗透测试神器,以metasploit为基础的GUI的框架式渗透工具,集成了传统远控功能(远程桌面VNC.键 ...
- 用python编写一个合格的ftp程序,思路是怎样的?
经验1.一般在比较正规的类中的构造函数.都会有一个verify_args函数,用于验证传入参数.尤其是对于系统传参.2.并且系统传参,其实后面大概都是一个函数名 例如:python server. ...
- Vi编辑器中查找替换
1 第一个是替换当前行的yesterday为all 第二个是替换全局的 yesterday 为all :s/yesterday/all :s/yesterday/all/g
- signal,blinker:信号(看我脸色行事)
signal 什么是信号(signal)? 信号在linux中被用来进行进程间的通信和异步处理,简单地可以理解会为回调函数,当发送一个信号时,会触发相应的操作.python中的signal模块便是用来 ...
- 升级python导致yum报错的解决方法
把python从2.7升级到3.6后 , 使用yum报错 File ‘’/usr/bin/yum'', line 30 except KeyboardInterrupt, e: ^ 故障原因:yum采 ...
- 常用数据存储格式之xml
常用数据存储格式介绍 XML 被设计用来传输和存储数据,其焦点是数据的内容. HTML 被设计用来显示数据,其焦点是数据的外观. 语法规则: XML 文档必须有一个根元素 XML元素都必须有一个关闭标 ...
- 多个jar包合并成一个jar包(ant)
https://blog.csdn.net/gzl003csdn/article/details/53539133 多个jar包合并成一个jar 使用Apache的Ant是一个基于Java的生成工具. ...
- SQL注入--盲注及报错注入
盲注查询 盲注其实就是没有回显,不能直观地得到结果来调整注入数据,只能通过其他方式来得到是否注入成功,主要是利用了一些数据库内置函数来达到的 布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根 ...
- 【CF 482E】ELCA
题意 题解 50pts 由于这题 \(2s\),所以可以信仰一波,暴力修改.查询. 暴力修改的复杂度是 \(O(n)\),暴力查询的复杂度是 \(O(n^2)\). 但不难发现可以通过记录子树大小来优 ...