Django admin简介

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']
6    fields = ['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']

 

posted @ 2019-04-01 20:07  Neroi  阅读(334)  评论(0)    收藏  举报