django admin是django自带的一个后台app,提供了后台的管理功能。
1 ModelAdmin
管理界面的定制类,如需扩展特定的model界面需要从该类继承
2 注册model类到admin的两种方式
- 使用register的方法
- 使用register的装饰器
3 掌握一些常用的设置技巧
list_display:指定要显示的字段
search_fields:指定搜索的字段
list_filter:指定列表过滤器
ordering:指定排序字段
fields\exclude:指定编辑表单需要编辑\不需编辑的字段
fieldsets:设置分组表单
4 测试
4.1 admin.py代码
# ==============================
# models.py的代码
class Publisher(models.Model):
name = models.CharField(max_length=30, verbose_name="出版社名称")
address = models.CharField("地址", max_length=50)
city = models.CharField("城市", max_length=60)
state_province = models.CharField("省份", max_length=30)
country = models.CharField("国家", max_length=50)
website = models.URLField("网址", )
class Meta:
verbose_name = '出版社'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
# ==============================
# admin.py的代码
from django.contrib import admin
from hello.models import *
# Register your models here.
@admin.register(Publisher)
class PublsherAdmin(admin.ModelAdmin):
list_display = ('name', 'country', 'state_province', 'city', 'country')
search_fields = ('name', 'city')
list_filter = ('state_province',)
ordering = ('-id',)
# fields = ('name','address')
exclude = ('country',)
fieldsets = (
(None, {
'fields': ('name', 'address')
}),
('拓展选项', {
'classes': ('collapse',),
'fields': ('city', 'state_province', 'website'),
}),
)
# admin.site.register(Publisher, PublsherAdmin)
4.2 Publisher的admin展示
- search_fields:方框1,可以搜索出版社名称和城市
- list_display:方框3,显示出版社名称、国家、省份、城市
- list_filter:方框2,过滤条件为省份
-
ordering:方框4,以id降序排序
- exclude:添加或者修改不显示的内容
-
fieldsets:方框5和6,设置选填的拓展选项