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

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. POJ-3894 迷宫问题 (BFS+路径还原)

    定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...

  2. git上传文件到github与gulp的简单使用

    git有两种方式提交源代码到github 第一种方式通过地址提交下面介绍的是通过ssh方式上传 git使用ssh方式上传代码到githubgit首先要生成公钥和私钥 将公钥添加到github中将私钥保 ...

  3. spark collect获取所有元素

    from pyspark import SparkConf, SparkContext conf = SparkConf().setMaster("local").setAppNa ...

  4. wordpress 使用less 样式无法及时刷新

    wordpress 样式无法及时刷新 wordpress编写style样式时,无法及时刷新页面,因此特意记录一番如何处理较好,网友的建议清除Chrome缓存,实时修改style携带的参数 折腾之旅开启 ...

  5. JS获取昨天/今天/今年第一天的方法

    talk is cheap,show me the code! //获取昨天 var day1 = new Date(); day1.setTime(day1.getTime()-24*60*60*1 ...

  6. sql server中的大数据的批量操作(批量插入,批量删除)

    首先我们建立一个测试用员工表 ---创建一个测试的员工表--- create table Employee( EmployeeNo int primary key, --员工编号 EmployeeNa ...

  7. httpclient 连接保持

    http连接重用 从一个主机向另外一个建立连接的过程时相当复杂的,而且包含了两个终端之间的很多包的交换,它是相当费时的. 连接握手的开销是很重要的,特别是对小量的HTTP报文. 如果打开的连接被重用来 ...

  8. scrapy-redis介绍(一)

    scrapy是python里面一个非常完善的爬虫框架,实现了非常多的功能,比如内存检测,对象引用查看,命令行,shell终端,还有各种中间件和扩展等,相信开发过scrapy的朋友都会觉得这个框架非常的 ...

  9. EntityFramework 6

    3.EF6 3.1初步目录及说明 下面是用VS2013开发环境创建的项目: 说明:控制台项目类型,安装 EF版本为6.1.3 , 数据库连接字符串配置: 隐藏代码 <connectionStri ...

  10. bzoj1600

    题解: 简单dp 显然不能超过一半 代码: #include<bits/stdc++.h> using namespace std; ][]; int main() { f[][]=; s ...