管理站点
备注
管理界面不是为了网站的访问者,而是为管理者准备的(django文档原话)。访问者的网站需要另外开发。
覆盖管理模板
使用第三方ui的前提:
非常熟悉和能看懂admin的前端代码,这意味着我需要掌握:
Javascript
Jquery
django-semantic-admin
掌握之后可以尝试使用 django-semantic-admin
css文件在 semantic_admintemplatesadminportal.html
从cdn引入,且无法修改
根模板admin/base.html的内置块和变量
{% block branding %}
页头的内容
site_header 默认值
Django管理
{% block title %}
TODO
内联表单集
inlines
属性,使用内联表单集可以跟父模型在同一页面同时编辑
Django提供的两个子类 TabularInline
或者 StackedInline
可以方便地动态增加或删除表单,值得研究模板源码并实现到godjan。
管理动作
关联源码和文件
change_list.html
admin_list.html
ModelAdmin.changelist_view
管理动作的默认动作:删除对象源码在哪里看?
通过debug发现:
django.contrib.admin.actions.delete_selected(modeladmin, request, queryset)
删除时会显示新页面,可以参考这个实现
常见问题
如何修改下拉框的值
修改模型的 __str__ 方法
字段可为null,表单保存时提示必填项
字段属性增加参数: brank=’’
ModelAdmin和site的区别
ModelAdmin是管理Model在页面的属性
而site也是管理页面属性,不过跟Model无关
修改标题
admin.site.site_header = "蝉时雨的个人网站"
admin.site.site_title = "蝉时雨的个人网站"