自定义管理表单
上面是创建了一个模型管理对象QuestionAdmin,然后将它传入到admin.site.register(),作为第二个参数. 上面特定的更改,使得"publication date"字段排在"Question"字段前面:
说到许多字段的表单,你可能想把表单分割成字段集:
表单变为:
还可以任意为每个字段制定HTML样式类:
显示为:
添加关联对象:
已经建立了Question管理对象,一个Question有多个Choices,管理界面并没有显示出来,因此我们需要在管理站点中注册Choice:
告诉DjangoL:Choice对象在Question的管理界面中编辑.默认提供三个Choice的空间.显示为:
有三个关联的Choice---由extra指定----每次你回到已经存在对象的"Chocie"页面时,都会获得三个额外的空表Choice.
由于显示Choice占用了大量的屏幕空间.未解决这个问题,Django提供了一种以表格形式显示内嵌的相关连对象的方法;只需改变一下ChocieInline的声明即可:
将StackedInline变为TabularInline:
显示为:
自定义管理界面中的变更列表:Question管理界面调整一下"变更列表"界面:
我们使用list_display选项来实现这个功能,它是一个要显示字段名称的元组,在对象的变更列表页面上作为列显示:
显示为:
添加一些修饰属性为:
显示为:
添加过滤器:
显示为:
添加搜索功能:
显示为:
自定义管理站点的外观:
1.自定义项目的模板:在自己创建的文件夹内创建一个templates目录,将模板放在其中是标准约定.
在配置文件settings.py中的TEMPLATES设置中添加一个DIRS选项:
2,将在templates下创建的admin目录,将admin/base_site.html从Django源码中管理站点的模板目录(django/contrib/admin/templates)拷贝到这个目录中.
只需编辑这个html文件,将其中的一些代码更改为:
得到
自定义应用的模板
Django是通过settings.py中的APP_DIRS设置为True,Django会在每个应用包下查找一个templates子目录,留作备用.