django admin model使用技巧
自定义记录返回值班 和 表名
class Guys(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField() def __str__(self): # 记录返回值pyton 2用__unicode__
return u'%s %s' % (self.first_name, self.last_name) class Meta: # 定义表名
verbose_name = '人员管理'
verbose_name_plural = '人员管理'
关联字段做字 search字段
models.py: class ApplyTag(models.Model):
tag = models.CharField('应用实例名', max_length=64)
note = models.CharField('备注', max_length=64, null=True, blank=True) def __str__(self):
return self.tag class RealServer(models.Model):
"""
WEB源站
"""
apply_name = models.ForeignKey('ApplyTag', verbose_name='应用名', null=True, blank=True)
host = models.ForeignKey('Host',verbose_name='主机')
bindip_host_eth = models.CharField('主机服务绑定IP的网卡', max_length=2, choices=bindip_host_eth_choices, default='')
port = models.IntegerField('服务端口', null=True, blank=True)
admin.py: class RealServerAdmin(admin.ModelAdmin):
list_display = ('apply_name', 'host', 'port')
search_fields = ('apply_name__tag',) # 以__ 表示关联字段属性
raw_id_fields = ('host',) admin.site.register(models.RealServer, RealServerAdmin)
list_display = ('first_name', 'last_name', 'email') #添加字段,以列表显示,not a ManyToManyField
search_fields = ('first_name', 'last_name') #页面添加查询栏
list_filter = ('publication_date',) #添加过滤(这里是过滤日期)
exclude = ('xxx',) # 排除字段
date_hierarchy = 'publication_date' #过滤(日期的另外一种过滤方式,可以添加后看一下)
ordering = ('-publication_date',) #排序(这里以日期排序,加‘-’表示降序)
fields = ('title', 'authors', 'publisher') #排除一些不想被其他人编辑的fields(不包含在内的不能编辑,这里publication_date不能编辑了)
filter_horizontal = ('authors',) #从‘多选框’的形式改变为‘过滤器’的方式,水平排列过滤器,must be a ManyToManyField,且不能用于 ForeignKey字段,默认地,管理工具使用`` 下拉框`` 来展现`` 外键`` 字段
filter_vertical = ('authors',) #同上,垂直排列过滤器
raw_id_fields = ('publisher',) #将ForeignKey字段从‘下拉框’改变为‘文本框’显示
自定义字段显示(自定义列)
from django.contrib import admin class PayAccount(models.Model):
customer = models.OneToOneField(Customer, verbose_name=u'客户')
balance = models.FloatField(verbose_name=u'余额(元)', default=0)
remark = models.CharField(max_length=200, verbose_name='备注', null=True, blank=True) def __unicode__(self):
return self.customer.name class Meta:
verbose_name = u'预缴账户'
verbose_name_plural = u'预缴账户'
#admin.py
class PayAccountModelAdmin(CustomizeModelAdmin):
def get_account_state(self, obj):
if obj.balance < 0:
return u'<span style="color:red;font-weight:bold">%s</span>' % (u"已欠费",)
elif obj.balance <= 50:
return u'<span style="color:orange;font-weight:bold">%s</span>' % (u"余额不足",)
else:
return u'<span style="color:green;font-weight:bold">%s</span>' % (u"正常",) get_account_state.short_description = u'账户状态'
get_account_state.allow_tags = True list_display = ['customer', 'balance', 'get_account_state', 'remark']
效果:

django admin model使用技巧的更多相关文章
- Django admin 常用方法 model 增加只读权限
1.Django admin model 设置查看权限 Django model 默认只有增加.删除.修改权限.没有查看权限 #model class Ad_Campaing(models.Model ...
- Django admin 的 9 个技巧
Tip 1:Django admin 后台不限于用 Django 开发的网站 虽然 Django admin 管理界面可以非常友好的用在 Django 项目的其它部分,它同样可以很容易用于其它像传统的 ...
- Django admin注册model究竟要怎么写才优雅 批量注册model
比如在Django admin 注册models时,会用到. 对于APP里自带的models,可以使用这种方式注册. from django.contrib import admin # Regist ...
- Django admin注册model究竟要怎么写才优雅
比如在Django admin 注册models时,会用到. 对于APP里自带的models,可以使用这种方式注册. from django.contrib import admin # Regist ...
- Django之model admin自定义后台管理
Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 比如,数据表如下: from django.db ...
- Django admin美化插件suit应用[原创]
前言 由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比 ...
- Django admin 权威指南(一)
版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...
- Django Admin 简单部署上线
前言 打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用Django admin,默认的admin并不漂亮,于是我使用了这个django-suit插件来美化 如图: 是不是比原来的漂亮多了. ...
- 你应该使用 Django admin 的 9 个理由(转)
你应该使用 Django admin 的 9 个理由 “问题是,我问到的每个人都持反对意见,他们认为 admin 只限于超级用户,很不灵活并且是难以定制.”—来自 Reddit 的 andybak 我 ...
随机推荐
- SpringMVC RESTful风格URL处理带点的参数
使用了RESTful风格的URL.但是在处理带点的搜索参数,比如baidu.com的时候,后台就取不到正确的参数了. 搜索了下原因,原来是SpringMVC将点号看作扩展分隔符号了,因此后台没法拿到正 ...
- dubbo监控中心搭建
从网上下载了一个dubbo监控中心,地址忘了,文件名是dubbo-monitor-simple-2.5.3-assembly.tar.gz. 修改监控中心配置文件如下: dubbo.container ...
- 循环大法——一次性理清forEach/for-in/for/$each
国寿的这个项目写得我基础都忘完了 近期会把vue和基础都并行复习.学习 forEach 适用于调用数组的每个元素,并将元素传递给回调函数,但是空数组是不会执行回调函数的.forEach适用于集合中的对 ...
- linux processes
So that Linux can manage the processes in the system, each process is represented by a task_struct ...
- Python Django 前后端数据交互 之 后端向前端发送数据
Django 前后台的数据传递 严正声明:作者:psklf出处: http://www.cnblogs.com/psklf/archive/2016/05/30/5542612.html欢迎转载,但未 ...
- SWIFT Enumeration(1)
Swift中定义Enumeration跟其它语言挺类似的,看如下定义一个星期的Enumeration enum Day:Int{ case Monday = 1, Tuesday,Wednesday, ...
- Hadoop streaming使用自定义python版本和第三方库
在使用Hadoop的过程中,遇到了自带python版本比较老的问题. 下面以python3.7为例,演示如何在hadoop上使用自定义的python版本以及第三方库. 1.在https://www.p ...
- IDEA创建的Web项目配置Tomcat并启动Maven项目
点击如图所示的地方,进行添加Tomcat配置页面 弹出页面后,按照如图顺序找到,点击+号 tomcat Service -> Local 注意,这里不要选错了哦,还有一个TomE ...
- 当前目录如何打开cmd
前言 有时候需要在当前文件夹打开cmd控制台,直接从开始打开cmd进入当前目录比较麻烦,可以直接进入. 方法 按住键盘上Shift键的同时,在要操作的文件夹(DOS年代称为目录)上点击鼠标右键,在弹出 ...
- os.path.join 用法
写在前面的话:看大家阅读量这么大,也应该在放点干货来了~~ 获取层级路径,直到可以获取文件夹下面的文件,多一个判断就行了: level1_list = [os.path.join(base_path, ...