黑马程序员技术交流社区

标题: 【上海校区】【Django】使用admin(八) [打印本页]

作者: 梦缠绕的时候    时间: 2018-8-2 09:31
标题: 【上海校区】【Django】使用admin(八)

自动化的后台应用程序admin称得上是Django“皇冠上的明珠”。任何对为Web应用创建简单的“CRUD”(Create,Read,Update,Delete)接口感到厌倦的人来说,这绝对是喜从天降。

由于admin后台并不是Django的必要组件,你必须在setting.py文件里指定你要使用它,就和指定其他app一样在INSTALLED_APPS里面添加一行(高版本的django无需添加)

django.contrib.admin

创建模型:

创建超级用户,用来登录admin后台管理

python manage.py createsuperuser

创建成功,启动服务器,使用创建的用户登录admin后台

为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin。比如,我们之前在 TestModel 中已经创建了模型 Test 。修改 TestModel/admin.py:

刷新之后如下

自定义表单

我们可以自定义管理页面,来取代默认的页面。比如上面的 "add" 页面。我们只想显示title部分。修改 TestModel/admin.py:

结果如下,只显示title,上面定义了一个BookAdmin类用来管理页面的显示格式,fields定义要显示的字段

内联(Inline)显示

上面的 User是 Book的外部键,所以有外部参考的关系。

而在默认的页面显示中,将两者分离开来,无法体现出两者的从属关系。我们可以使用内联显示,让 Book附加在 User 的编辑页面上显示。

修改TestModel/admin.py:

刷新后结果如下图

列表页的显示 list_display

当Book里面录入数据之后,列表展示如下:

我们也可以自定义该页面的显示,比如在列表中显示更多的栏目,只需要在 BookAdmin 中增加 list_display 属性:

刷新下图显示:

搜索 search_fields

搜索功能在管理大量记录时非常有,我们可以使用 search_fields 为该列表页增加搜索栏:

list_display_links

list_display_links变量其实与list_display有一定的关联,它的作用是提供一个超链接,转到form_change页面,就是修改页面。默认情况下,就是list_display变量的第一个元素提供超链接。

list_per_page

每一页最大的对象个数,如下,每一页显示20个对象:

list_filter

筛选器是Django后台管理重要的功能之一,而且Django为我们提供了一些实用的筛选器。

ordering

对象按规则排序,下列按id倒序排列




作者: 不二晨    时间: 2018-8-2 17:36
奈斯,棒棒哒




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2