您现在所在的位置:首页 > 学习资源 > Python+人工智能入门教材 >

Python基础入门教程70:Django管理员工具

来源:奇酷学院 发表于:

Django 的最大卖点之一是其一流的管理界面。这个工具是按照最终用户的思路设计的。它为我们的项目提供了很多数据输入工具。管理工具是 Dj

Django 的最大卖点之一是其一流的管理界面。这个工具是按照最终用户的思路设计的。它为我们的项目提供了很多数据输入工具。

管理工具是 Django 提供的一个应用程序。与 jobs 应用程序一样,在使用之前也必须进行安装。第一个步骤是将应用程序的模块(django.contrib.admin)添加到 INSTALLED_APPS 设置中:

清单 16. 修改 settings.py
1
2
3
4
5
6
7
8
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'djproject.jobs',
    'django.contrib.admin',
)

要让该管理工具可以通过 /admin URL 使用,只需要简单地取消项目的 urls.py 文件中提供的对应行的内容即可。下一节将详细介绍 URL 的配置。

清单 17. 使管理工具可以通过 urls.py 使用
1
2
3
4
5
from django.conf.urls.defaults import *
 
urlpatterns = patterns('',
    (r'^admin/', include('django.contrib.admin.urls.admin')),
)

这个管理应用程序有自己的数据库模型,但也需要进行安装。我们可以再次使用 syncdb 命令来完成这个过程:

python manage.py syncdb

要查看这个管理工具,可以使用 Django 提供的测试服务器。

清单 18. 使用测试服务器来查看管理工具
1
2
3
4
5
6
7
~/dev/djproject$ python manage.py runserver
Validating models...
0 errors found.
 
Django version 0.95 (post-magic-removal), using settings 'djproject.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).

现在可以使用 http://localhost:8000/admin 启动管理工具,并使用前面创建的超级用户帐号进行登录。我们注意到现在还没有可用的模块。

要让一个类可以通过管理工具进行访问,我们需要为其创建一个 Admin 子类。然后可以通过为这个子类添加类属性来定制如何对每个类进行管理。清单 19 展示了如何将 Location 类添加到这个管理工具中。

清单 19. 使用管理工具添加 Location 类
1
2
3
4
class Location(meta.Model):
    ...
    class Admin:
        list_display = ("city", "state", "country")

现在就可以通过管理界面来创建、更新和删除 Location 记录了。

图 1. 使用管理工具编辑位置
使用管理工具编辑位置

可以按照 list_display 类的属性指定的城市、州和国家来列出记录并对它们进行排序。

图 2. 使用管理工具显示位置
使用管理工具显示位置

管理工具有无数用来管理每种模块类的选项。清单 20 给出了几个适用于 Job 类的例子:

清单 20. 管理模块类的选项
1
2
3
4
5
6
7
class Job(meta.Model):
    ...
    class Admin:
    list_display = ("job_title", "location", "pub_date")
    ordering = ["-pub_date"]
    search_fields = ("job_title", "job_description")
    list_filter = ("location",)

根据以上设置,职位的标题、位置和发布日期都会在显示职位记录时用到。职位可以按照发布时间进行排序,最开始是最近发布的职位(减号表示降序)。用户可以按照标题和说明来查找职位,管理员可以根据位置对记录进行过滤。

图 3. 使用管理工具显示职位
使用管理工具显示职位