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

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. iOS UI-标签控制器(UITabBarController)

    #import "AppDelegate.h" #import "FirstViewController.h" #import "SecondView ...

  2. top k

    def top_k(arr, left, right, k): if left >= right: return pivot = arr[right] index = left for i in ...

  3. 李阳音标速成MP3文本

    第一节:前元音 No. 1 [i:]穿针引线长衣音,简称"长衣音" 字母:e字母:ee 字母:ea字母:ie字母:ei 其发音要领是发音时舌尖抵下齿,前舌尽量抬高.舌位高于/i/: ...

  4. UVALive 5984

    题目链接:Save the Students! #include<stdio.h> #include<string.h> #include<iostream> #i ...

  5. linux abstract model of virtual memory

  6. customization arm ubuntu rootfs

    requirment: want to get arm ubuntu rootfs method: base on debootstrap tool, customization full funct ...

  7. js图片切换 带左右控制的

    代码下载

  8. apscheduler -定时任务

    https://apscheduler.readthedocs.io/en/latest/userguide.html 简单的使用方式为: from apscheduler.schedulers.bl ...

  9. C++中的数据存储方式自动存储、静态存储和动态存储

    C++中变量存储方式有三种,自动存储,静态存储,动态存储 自动存储简单意义上就是在函数内不用任何关键字直接定义的变量,它在函数被调用时被创建,在函数退出时自动消失, 静态存储顾名思义就是在程序的整个运 ...

  10. Bitdefender Internet Security 2013 – 免费3个月

    Bitdefender Internet Security 2013 – 免费3个月大约1分钟参加调查,申请3个月免费,缺陷是…要经过人工审核活动地址: 点此进入申请方法,最好用谷歌翻译(俄文)