admin 是django 自带的用来让你进行数据库管理的web app.
python manage.py startproject app01 创建项目时候自动创建admin
创建超级用户:
python manage.py createsuperuser name
admin注册表;
1 from django.contrib import admin 2 from app01 import models 3 4 5 admin.site.register(models.CustomerInfo)
6 admin.site.register(models.Account)
定制admin;
1 # 自定义admin 2 class CustomerAdmin(admin.ModelAdmin): 3 list_display = [‘name‘, ‘source‘, ‘contact_type‘, ‘contact‘, ‘consultant‘, ‘consult_content‘, ‘status‘,‘date‘] #展示哪些列 4 list_filter = [‘source‘, ‘consultant‘, ‘status‘, ‘date‘] #过滤 5 search_fields = [‘contact‘,‘consultant__name‘]
6fields
=
[
‘title‘
,
‘account‘
,
‘pub_date‘
] #
fields 决定对表进行修改时展示哪些字段
fields
=
[
‘title‘
,
‘account‘
,(
‘pub_date‘
,
‘read_count‘
)] #
还可以多个字段显示在一行
list_per_page = 20 每页显示20条数据
radio_fields={‘account’:admin.VERTICAL} 把外键或choice字段由下拉框变成单选框
autocomplete_fields = [‘account‘,] 自动补全,外键查询数据多时,方便查找
readonly_fields = (‘address_report‘,) 只读字段search_fields
=
[
‘account__username‘
,
‘title‘
] 模糊查找
#exclude 不展示哪些字段 date_hierarchy = ‘pub_date‘ 按日期分类显示数据
8 admin.site.register(models.CustomerInfo, CustomerAdmin)
fieldsets分组展示
class ArticleAdmin(admin.ModelAdmin): list_display = (‘title‘,‘pub_date‘,‘account‘,‘read_count‘) date_hierarchy = ‘pub_date‘ fieldsets = ((‘文章相关‘,{ ‘fields‘:(‘title‘,‘content‘), ‘classes‘: (‘wide‘, ‘extrapretty‘), }),(‘高级‘,{ ‘classes‘:(‘collapse‘,), ‘fields‘:((‘account‘,‘read_count‘),‘pub_date‘) }))
上面的classes 是用于设定字段样式,2个默认自带的样式是collapse 和wide
filter_horizontal,filter_vertical 均用于多对多字段 filter_horizontal = [‘tags‘,]
颜色和样式
from django.utils.html import format_html
<br>class Tag(models.Model): """文章标签表""" name = models.CharField(max_length=64,unique=True) date = models.DateTimeField(auto_now_add=True) color_code = models.CharField(max_length=6) def colored_name(self): return format_html( ‘<span style="color: #{};">{}</span>‘, self.color_code, self.name, ) def __str__(self): return self.name 1 2 class TagAdmin(admin.ModelAdmin): list_display = [‘name‘,‘colored_name‘]
原文:https://www.cnblogs.com/Neroi/p/10638585.html