*******************************
管理站点
*******************************
.. 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 = "蝉时雨的个人网站"