Django 的最大賣(mài)點(diǎn)之一是其一流的管理界面。這個(gè)工具是按照最終用戶的思路設(shè)計(jì)的。它為我們的項(xiàng)目提供了很多數(shù)據(jù)輸入工具。管理工具是 Dj
管理工具是 Django 提供的一個(gè)應(yīng)用程序。與 jobs
應(yīng)用程序一樣,在使用之前也必須進(jìn)行安裝。第一個(gè)步驟是將應(yīng)用程序的模塊(django.contrib.admin
)添加到 INSTALLED_APPS 設(shè)置中:
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', ) |
要讓該管理工具可以通過(guò) /admin URL 使用,只需要簡(jiǎn)單地取消項(xiàng)目的 urls.py 文件中提供的對(duì)應(yīng)行的內(nèi)容即可。下一節(jié)將詳細(xì)介紹 URL 的配置。
1
2
3
4
5
|
from django.conf.urls.defaults import * urlpatterns = patterns('', (r'^admin/', include('django.contrib.admin.urls.admin')), ) |
這個(gè)管理應(yīng)用程序有自己的數(shù)據(jù)庫(kù)模型,但也需要進(jìn)行安裝。我們可以再次使用 syncdb
命令來(lái)完成這個(gè)過(guò)程:
python manage.py syncdb
要查看這個(gè)管理工具,可以使用 Django 提供的測(cè)試服務(wù)器。
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). |
現(xiàn)在可以使用 http://localhost:8000/admin 啟動(dòng)管理工具,并使用前面創(chuàng)建的超級(jí)用戶帳號(hào)進(jìn)行登錄。我們注意到現(xiàn)在還沒(méi)有可用的模塊。
要讓一個(gè)類可以通過(guò)管理工具進(jìn)行訪問(wèn),我們需要為其創(chuàng)建一個(gè) Admin 子類。然后可以通過(guò)為這個(gè)子類添加類屬性來(lái)定制如何對(duì)每個(gè)類進(jìn)行管理。清單 19 展示了如何將 Location 類添加到這個(gè)管理工具中。
1
2
3
4
|
class Location(meta.Model): ... class Admin: list_display = ("city", "state", "country") |
現(xiàn)在就可以通過(guò)管理界面來(lái)創(chuàng)建、更新和刪除 Location 記錄了。
可以按照 list_display
類的屬性指定的城市、州和國(guó)家來(lái)列出記錄并對(duì)它們進(jìn)行排序。
管理工具有無(wú)數(shù)用來(lái)管理每種模塊類的選項(xiàng)。清單 20 給出了幾個(gè)適用于 Job 類的例子:
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",) |
根據(jù)以上設(shè)置,職位的標(biāo)題、位置和發(fā)布日期都會(huì)在顯示職位記錄時(shí)用到。職位可以按照發(fā)布時(shí)間進(jìn)行排序,最開(kāi)始是最近發(fā)布的職位(減號(hào)表示降序)。用戶可以按照標(biāo)題和說(shuō)明來(lái)查找職位,管理員可以根據(jù)位置對(duì)記錄進(jìn)行過(guò)濾。
Python交流群
635448130點(diǎn)擊加入群聊UI設(shè)計(jì)交流群
579150876點(diǎn)擊加入群聊Unity交流群
495609038點(diǎn)擊加入群聊HTML5交流群
645591648點(diǎn)擊加入群聊