1.前言
前面通过学习创建了一个基本的映射:Python3:使用Django创建web应用出现的坑(Django Admin 管理工具的使用),下面的都是基于这个实现的操作!!!
学习来源:菜鸟教程
2.实现修改和显示当前页面的字段
在当前的webapp中的admin.py模块中添加以下内容:
from django.contrib import admin
from webapp.models import Test, Contact, Tag
class ContactAdmin(admin.ModelAdmin):
fields = ('name', 'email') # 取消了当前Contact中的age,发现当前age字段没有显示
admin.site.register(Contact, ContactAdmin)
admin.site.register([Test,Tag])
结果:
1.结论当前的字段是通过admin.site.register(Contact, ContactAdmin)将当前的Contact类实际上注册为ContactAdmin这个类(使用的字段为fields的值)
2.添加字段列
from django.contrib import admin
from webapp.models import Test, Contact, Tag
# Register your models here.在这里注册当前的模块
class ContactAdmin(admin.ModelAdmin):
fieldsets = (
['Main', {
'fields': ('name', 'email'),
}],
['Advance', {
'classes': ('collapse',), # CSS 这个使用显示和隐藏的
'fields': ('age',),
}])
admin.site.register(Contact, ContactAdmin)
admin.site.register([Test, Tag])
结果:
当注释掉classes这行属性的时候结果为:
修改main和advence
fieldsets = (
['用户名', {
'fields': ('name',),
}],
['邮箱', {
'fields': ('email',),
}],
['年龄', {
'classes': ('collapse',), # CSS 这个使用显示和隐藏的
'fields': ('age',),
}]
)
结果:
1.通过设置fieldsets方式创建行并指定名称和需要填充的字段field
4.修改当前的列表显示所有的数据
class TagInline(admin.TabularInline):
model = Tag # 将当前的Tag类给定为当前的TagLine中
class ContactAdmin(admin.ModelAdmin):
inlines = [TagInline] # Inline 将上面的TagLine编程内联的方式加入到当前的的ContactAdmin中
list_display = ('name', 'email', 'age') # 列表使用的自定义样式(就是定义表头)
# 添加搜索框
search_fields = ('name',)
fieldsets = (
['Main', {
'fields': ('name', 'email'),
}],
['Advance', {
'classes': ('collapse',),
'fields': ('age',),
}]
)
结果:
1.添加内联结果
2.添加list_display属性后的结果
3.添加搜索框
4.搜索的结果
5.总结
1.使用当前的Django Admin 管理工具的时候需要注意使用admin.site.register注册类,可以将指定类注册为另外一个类
2.当前的字段对应了fileds这个属性
,通过list_display设定当前列表的头部信息
3.通过添加search_fields为当前的列表显示中添加搜索
以上纯属个人见解,如有问题请联系本人!