Django自带的admin在展示数据是样式有点单一,我们可以自己定义数据的展示样式。
1、后台查询书记列表时,同时列出出版社和出版时间:
admin.py文件
from django.contrib import admin import models class BookAdmin(admin.ModelAdmin): list_display = (‘name‘,‘publisher‘,‘publication_date‘) #展示 admin.site.register(models.Author) admin.site.register(models.Publisher) admin.site.register(models.Book,BookAdmin)
这样,展示效果如下图:
2、添加搜索框
admin.py
from django.contrib import admin import models class BookAdmin(admin.ModelAdmin): list_display = (‘name‘,‘publisher‘,‘publication_date‘) search_fields = (‘name‘,‘publisher__name‘) #搜索,‘__‘表示需要关连到其他表中查询 admin.site.register(models.Author) admin.site.register(models.Publisher) admin.site.register(models.Book,BookAdmin)
这样,就有搜索框了:
3、添加过滤器
admin.py
from django.contrib import admin import models class BookAdmin(admin.ModelAdmin): list_display = (‘name‘,‘publisher‘,‘publication_date‘) search_fields = (‘name‘,‘publisher__name‘) list_filter = (‘name‘,‘publisher‘,‘publication_date‘) #过滤 admin.site.register(models.Author) admin.site.register(models.Publisher) admin.site.register(models.Book,BookAdmin)
这样,在admin页面的右侧就添加了一个过滤器
4、编辑每行字段
admin.py
from django.contrib import admin import models class BookAdmin(admin.ModelAdmin): list_display = (‘id‘,‘name‘,‘publisher‘,‘publication_date‘) search_fields = (‘name‘,‘publisher__name‘) list_filter = (‘name‘,‘publisher‘,‘publication_date‘) list_editable = (‘name‘,‘publisher‘,‘publication_date‘) #可编辑的字段,注意,默认第一个字段不可编辑,因此添加‘id‘为第一个字段 admin.site.register(models.Author) admin.site.register(models.Publisher) admin.site.register(models.Book,BookAdmin)
效果如下:
原文:http://www.cnblogs.com/ahaii/p/5728499.html