******************************* 管理站点 ******************************* .. note:: 管理界面不是为了网站的访问者,而是为管理者准备的(django文档原话)。访问者的网站需要另外开发。 覆盖管理模板 ============================================== 使用第三方ui的前提: 非常熟悉和能看懂admin的前端代码,这意味着我需要掌握: * Javascript * Jquery django-semantic-admin -------------------------- 掌握之后可以尝试使用 `django-semantic-admin `_ css文件在 :file:`semantic_admin\templates\admin\portal.html` 从cdn引入,且无法修改 根模板admin/base.html的内置块和变量 =============================================== {% block branding %} ------------------------------- 页头的内容 * site_header 默认值 ``Django管理`` {% block breadcrumbs %} ------------------------------- 面包屑 * title 模型的名称 {% block title %} ------------------------------- TODO 内联表单集 =============================== ``inlines`` 属性,使用内联表单集可以跟父模型在同一页面同时编辑 * `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无关 修改标题 -------------------------------------- .. code-block:: python admin.site.site_header = "蝉时雨的个人网站" admin.site.site_title = "蝉时雨的个人网站"