第8天:Django Admin高级配置
目标
定制Django Admin界面,提高数据管理效率。
任务概览
- 注册模型到Admin界面。
- 定制Admin选项,如列表显示、搜索字段、过滤器等。
详细步骤
1. 注册模型到Admin界面
在Django Admin中注册模型,使其在界面中显示。
python
# myproject/myapp/admin.py
from django.contrib import admin
from .models import MyModel
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
pass
2. 定制Admin列表显示
定制Admin界面中的列表显示,包括字段、搜索、过滤器等。
- 字段显示 :设置
list_display
来定义列表页面显示哪些字段。
python
list_display = ('field1', 'field2', 'method_name')
- 搜索 :设置
search_fields
来添加搜索框,并定义可搜索的字段。
python
search_fields = ['field1', 'field2']
- 过滤器 :使用
list_filter
来添加侧边过滤器。
python
list_filter = ('field1', 'field2')
3. 定制Admin表单
定制Admin表单页面,包括哪些字段显示以及它们的布局。
- 表单字段 :设置
fields
来定义表单页面的字段顺序。
python
fields = ('field1', 'field2')
- 字段集 :使用
fieldsets
来将字段分组显示。
python
fieldsets = (
('Group 1', {
'fields': ('field1', 'field2'),
}),
('Group 2', {
'fields': ('field3',),
}),
)
- 表单布局 :使用
form
属性来自定义表单类。
python
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
4. 定制Admin模型行为
定制Admin模型的行为,如保存、删除等。
- 保存 :重写
save_model
方法来自定义保存行为。
python
def save_model(self, request, obj, form, change):
obj.save()
- 删除 :重写
delete_model
方法来自定义删除行为。
python
def delete_model(self, request, obj):
obj.delete()
5. 定制Admin界面的样式和脚本
添加自定义的CSS和JavaScript来改变Admin界面的样式或添加交互。
python
class MyModelAdmin(admin.ModelAdmin):
class Media:
css = {
'all': ('css/mymodel_admin.css',)
}
js = ('js/mymodel_admin.js',)
学习要点
- 理解如何将模型注册到Django Admin。
- 学会如何定制Admin列表页面和表单页面。
- 掌握如何添加自定义的CSS和JavaScript到Admin界面。
每日回顾
- 检查Admin界面是否按预期显示模型。
- 测试定制的列表显示、搜索、过滤器是否正常工作。
通过今天的学习,你应该能够定制Django Admin界面,提高数据管理的效率。明天,我们将学习如何在Django中管理静态文件和媒体文件,这对于构建现代Web应用是必不可少的。