django admin site配置(二)
1.
ModelAdmin.inlines
将有外键的子类包含进视图 ,实例:
class Author(models.Model):
name = models.CharField(max_length=100) class Book(models.Model):
author = models.ForeignKey(Author)
title = models.CharField(max_length=100)
class BookInline(admin.TabularInline):
model = Book class AuthorAdmin(admin.ModelAdmin):
inlines = [
BookInline,
]
2.
list_display = ('first_name', 'last_name')
列表显示字段。记住:他不会显示manytomany字段
特殊用法:
class Person(models.Model):
first_name = models.CharField(max_length=50)
birthday = models.DateField() def born_in_fifties(self):
return self.birthday.strftime('%Y')[:3] == '195'
born_in_fifties.boolean = True class PersonAdmin(admin.ModelAdmin):
list_display = ('name', 'born_in_fifties')
将生日为195的设置为true,并且显示对号或者横线。 用途,学生成绩是否及格,当大于60设置为true。
list_display = ('__unicode__', 'some_other_field')
colored_first_name.admin_order_field = 'first_name'
设置字段排序
list_display_links = ('first_name', 'last_name')
设置超链接字段
3.ModelAdmin.list_editable
设置列表字段是否可以编辑,常用语文章更改目录,修改某些非外键字段。不过外键也可以修改,如果某个字段设置为links,则该字段不能被修改
# raw_id_fields = ('goods',)
# list_editable=('goods','price','num','producer','in_times','is_active')
4.
list_filter = ('is_staff', 'company')
过滤字段。
自定义过滤字段:
from datetime import date from django.utils.translation import ugettext_lazy as _
from django.contrib.admin import SimpleListFilter class DecadeBornListFilter(SimpleListFilter):
title = _('decade born')#过滤标题 # 设置url参数,?decade='80s'
parameter_name = 'decade' def lookups(self, request, model_admin):
"""
值,显示属性
"""
return (
('80s', _('in the eighties')),
('90s', _('in the nineties')),
) def queryset(self, request, queryset):
"""
过滤
"""
if self.value() == '80s':
return queryset.filter(birthday__gte=date(1980, 1, 1),
birthday__lte=date(1989, 12, 31))
if self.value() == '90s':
return queryset.filter(birthday__gte=date(1990, 1, 1),
birthday__lte=date(1999, 12, 31)) class PersonAdmin(ModelAdmin):
list_filter = (DecadeBornListFilter,)
from django.contrib.admin import BooleanFieldListFilter class PersonAdmin(ModelAdmin):
list_filter = (
('is_staff', BooleanFieldListFilter),
)
boolean类型的filter
class FilterWithCustomTemplate(SimpleListFilter):
template = "custom_template.html"
自定义过滤器模板默认模板 admin/filter.html
5.
list_max_show_all
显示全部 最大数据,总数据超过该数据将不显示显示全部
list_per_page
没页显示数据条数
ordering
排序
class ArticleAdmin(admin.ModelAdmin):
prepopulated_fields = {"字段1": ("ziduan2",)}
当字段1填写数据的同时,字段2也同时被填充,数据一致
class PersonAdmin(admin.ModelAdmin):
radio_fields = {"group": admin.VERTICAL}
单选按钮,适用于开关(必须填)。如是否有效
class ArticleAdmin(admin.ModelAdmin):
raw_id_fields = ("newspaper",)
外键选择
from django.utils.html import format_html_join
from django.utils.safestring import mark_safe class PersonAdmin(ModelAdmin):
readonly_fields = ('address_report',) def address_report(self, instance):
# assuming get_full_address() returns a list of strings
# for each line of the address and you want to separate each
# line by a linebreak
return format_html_join(
mark_safe('<br/>'),
'{0}',
((line,) for line in instance.get_full_address()),
) or "<span class='errors'>I can't determine this address.</span>" # short_description functions like a model field's verbose_name
address_report.short_description = "Address"
# in this example, we have used HTML tags in the output
address_report.allow_tags = True
只读,注意:可以向模板页面一样格式化数据,同时给只读属性增加自定义样式。
6.
6.ModelAdmin.save_as
当是修改数据的时候,将新增一个替换为保存为新的,并且旧的不替换,新增id保存
7.
ModelAdmin.save_on_top
设置保存按钮到顶部!
8.
search_fields = ['foreign_key__related_fieldname']
设置搜索。
django admin site配置(二)的更多相关文章
- Django Admin site 显示问题
Django Admin site 显示问题 今天配置了一下Django admin site,可是admin site的显示有一些问题,当我打开源码.訪问里面的admin 的css 文件时候,htt ...
- Django admin参数配置
admin参数配置 一. admin 启动 admin: Django的后台数据管理的web版本 针对Food表,url: http://127.0.0.1:8000/admin/app02/food ...
- Django admin site(一)ModelAdmin Options
Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 要使用admin,可以按照下面的步骤: 将'dj ...
- Django admin site应用
django自带的admin后台管理,可以实现对数据库表的增删改查,用起来十分方便.其使用和配置主要分为三个步骤: 1,创建超级用户 需要创建超级用户来登陆admin后台系统,在命令行中输入 pyth ...
- 如何给django admin.py配置超级管理员?注册表格?
admin.py是django给我们提供的功能非常强大的后台,况且支持拓展,,如果你要是觉得admin的后台不够牛逼你可以自己写一个!如何自己写一个后台,后面我有时间了会给大家更新!一起学习!一起进步 ...
- Django admin site(三)InlineModelAdmin
InlineModelAdmin class InlineModelAdminclass TabularInlineclass StackedInline 举例,有两个Model: from djan ...
- Django admin site(二)ModelAdmin methods
ModelAdmin methods save_model(request, obj, form, change) 此方法为admin界面用户保存model实例时的行为.request为HttpReq ...
- django admin site (三)
1.自定义模板设置: ModelAdmin. add_form_template Path to a custom template, used by add_view(). ModelAdmin. ...
- 【Django admin 中文配置】
打开settings.py文件,找到语言编码.时区的设置项,将内容改为如下: [其中 zh-Hans是简体中文 zh-Hant是繁体中文] LANGUAGE_CODE = 'zh-Hans' # LA ...
随机推荐
- 漫游Kafka实现篇之分布式
Zookeeper节点标记 当路径中的元素包括在方括号里比如[xyz],则表示xyz表示的值是不固定的,每个可能的值都有一个Zookeeper节点.比如/topics/[topic]表示每个topic ...
- 转载]IOS LBS功能详解[0](获取经纬度)[1](获取当前地理位置文本 )
原文地址:IOS LBS功能详解[0](获取经纬度)[1](获取当前地理位置文本作者:佐佐木小次郎 因为最近项目上要用有关LBS的功能.于是我便做一下预研. 一般说来LBS功能一般分为两块:一块是地理 ...
- spring tx:advice 和 aop:config 配置事务
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- opengl截图
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { UINT num = ; // number of image encoders U ...
- *ecshop 模板中foreach用法详解
1.foreach分以下几个参数 from, item, name, iteration, index 2.使用foreach循环 如果php要传递一个数组(如:$array)给ecshop ...
- a标签的href劫持,做判断后在跳转
$.ajax({ type: "POST", url: "/resource/logincheck", data: {id: id}, success: fun ...
- 【英语】Bingo口语笔记(47) - 关于马的表达
beat a dead horse 浪费口舌
- delete archivelog all 无法彻底删除归档日志?
最近在因归档日志暴增,使用delete archivelog all貌似无法清除所有的归档日志,到底是什么原因呢? 1.演示环境 SQL> select * from v$version whe ...
- mkdir -p命令
如果要创建目录A并创建目录A的子目录B,没有用-p的情况下是mkdir 2次如果用-p 可以直接创建2个目录 mkdir -p 目录A/子目录B就可以
- android.os.NetworkOnMainThreadException解决
很早就知道Android4.0以后,要把耗时的网络操作放在多线程中,处理方法有: 1) setContentView(R.layout.activity_main)下面加上如下代码 if (andro ...