自定义记录返回值班 和 表名

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使用技巧的更多相关文章

  1. Django admin 常用方法 model 增加只读权限

    1.Django admin model 设置查看权限 Django model 默认只有增加.删除.修改权限.没有查看权限 #model class Ad_Campaing(models.Model ...

  2. Django admin 的 9 个技巧

    Tip 1:Django admin 后台不限于用 Django 开发的网站 虽然 Django admin 管理界面可以非常友好的用在 Django 项目的其它部分,它同样可以很容易用于其它像传统的 ...

  3. Django admin注册model究竟要怎么写才优雅 批量注册model

    比如在Django admin 注册models时,会用到. 对于APP里自带的models,可以使用这种方式注册. from django.contrib import admin # Regist ...

  4. Django admin注册model究竟要怎么写才优雅

    比如在Django admin 注册models时,会用到. 对于APP里自带的models,可以使用这种方式注册. from django.contrib import admin # Regist ...

  5. Django之model admin自定义后台管理

    Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 比如,数据表如下: from django.db ...

  6. Django admin美化插件suit应用[原创]

    前言 由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比 ...

  7. Django admin 权威指南(一)

    版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...

  8. Django Admin 简单部署上线

    前言 打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用Django admin,默认的admin并不漂亮,于是我使用了这个django-suit插件来美化 如图: 是不是比原来的漂亮多了. ...

  9. 你应该使用 Django admin 的 9 个理由(转)

    你应该使用 Django admin 的 9 个理由 “问题是,我问到的每个人都持反对意见,他们认为 admin 只限于超级用户,很不灵活并且是难以定制.”—来自 Reddit 的 andybak 我 ...

随机推荐

  1. PHP 的 HTTP 认证机制

    PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本.在 Apache 模块的 PHP 脚本中,可以用 header()函数来向客户端浏 ...

  2. JavaScript学习总结(十九)——使用js加载器动态加载外部Javascript文件

    今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js 1 var MiniSite=new Object(); 2 /** 3 * 判断浏览器 4 */ 5 M ...

  3. C语言描述队列的实现及操作(数组实现)

    一.静态数组实现 1.队列接口 #include<stdio.h> // 一个队列模块接口 // 命名为myqueue.h #define QUEUE_TYPE int // 定义队列类型 ...

  4. Flask初级(一)创建及运行flash

    和前面的django差不多,选个类型,定义个目录. 选个模板解释器,定义一个模板文件夹名称. Create就创建成功了. 运行一下.会显示 Hello World! 最好给它换个运行环境,建个虚拟环境 ...

  5. 玩转树莓派:OpenHAB的入门(一)

    如果你对那些仅仅只是为了控制一盏灯而不得不下载一个特定的App的智能家居感到厌烦,这里有个好消息:OpenHAB可以为你实现最灵活的控制智能家居,OpenHAB是一个成熟的,开源的家庭自动化平台,既可 ...

  6. nwjs 实现的 分块上传

    1.先上核心工具类/** * Created by Administrator on 2017/6/12. */let fs = require("fs");/** * Creat ...

  7. View的事件拦截机制浅析

    为什么要去分析view的事件 记得上周刚立的flag就是关于view的事件机制.那现在我来说说我对view的感受.关于view的事件,百度google一搜.一批又一批.但是能让人理解的少之又少.换句话 ...

  8. 浏览器兼容性工具 Spoon Browser Sandbox

    1.Spoon Browser Sandbox 勺浏览器沙箱 主流浏览器多(IE.Chrome.FireFox.Safari.Opera),浏览器又有很多版本:保证网页在主流浏览器中很好的显示,不可能 ...

  9. cocos2dx 3.1.1移植安卓apk (lua项目交叉编译 mac环境下)

    cocos2dx 3.1.1 lua项目安卓交叉编译 mac环境下 本文基于ant,sdk,ndk,adt等软件和环境已经事前设置好 1\新建项目 在mac的终端下输入命令: cocos new te ...

  10. magento模板 -- 如何安装magento模板

    在magento下面安装模板首先要了解magento的模板结构: 每个magento模板都包含如下的类似结构: --app/design/frontend/default/[模板名称] ------- ...