1,激活管理界面
-
修改settings.py
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # Uncomment the next line for simple clickjacking protection: 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.locale.LocaleMiddleware', ) INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', # Uncomment the next line to enable the admin: 'django.contrib.admin', # Uncomment the next line to enable admin documentation: 'django.contrib.admindocs', 'DjangoMysqlSite.products', #這個是我上章建立的app,可參考前面 )
修改完后到項目目錄執行 python manage.py syncdb 這時候會提示你輸入創建超級用戶用於登錄管理后台。
-
修改urls.py
現在可以配置admin的url配置:直接取消注釋即可。如下圖
- python manage.py runserver 開啟開發服務器,http://127.0.0.1:8000/admin 測試。
這就是Django管理界面,可以隨意操作..
2,注冊自己的模型到管理界面
依然用前面用到的例子products app 具體看上一章 Product,Company這兩個模型。
在products目錄下新建admin.py,代碼如下:
admin.site.register(Company,CompanyAdmin) admin.site.register(Product,ProductAdmin)
以上兩句即可注冊到管理后台,下面是添加了一些附加功能的一些代碼,當然自己可以自由定義。
#vim: set fileencoding=utf-8 : from django.contrib import admin from DjangoMysqlSite.products.models import Company,Product #自定義顯示列 class CompanyAdmin(admin.ModelAdmin): list_display = ('full_name','address','tel') search_fields = ('full_name',) class ProductAdmin(admin.ModelAdmin): list_display = ('product_name','price','stock','create_date')#自定義顯示列 search_fields = ('product_name','price')#搜索字段 list_filter = ('create_date',) #右邊小窗過濾器 date_hierarchy = 'create_date' #對一個日期型字段進行層次划分 ordering = ('-create_date',)#列表排序字段 fields = ('product_name','stock','price','create_date',)#定義表單字段的順序,默認安裝模型中定義順序 admin.site.register(Company,CompanyAdmin) admin.site.register(Product,ProductAdmin)
效果如下圖:

3,Admin是如何工作的
當服務啟動時,Django從`` url.py`` 引導URLconf,然后執行`` admin.autodiscover()`` 語句。 這個函數遍歷INSTALLED_APPS配置,並且尋找相關的 admin.py文件。 如果在指定的app目錄下找到admin.py,它就執行其中的代碼。
在`` products`` 應用程序目錄下的`` admin.py`` 文件中,每次調用`` admin.site.register()`` 都將那個模塊注冊到管理工具中。 管理工具只為那些明確注冊了的模塊顯示一個編輯/修改的界面。
應用程序`` django.contrib.auth`` 包含自身的`` admin.py`` ,所以Users和Groups能在管理工具中自動顯示。 其它的django.contrib應用程序,如django.contrib.redirects,其它從網上下在的第三方Django應用程序一樣,都會自行添加到管理工具。
綜上所述,管理工具其實就是一個Django應用程序,包含自己的模塊、模板、視圖和URLpatterns。 你要像添加自己的視圖一樣,把它添加到URLconf里面。 你可以在Django基本代碼中的django/contrib/admin 目錄下,檢查它的模板、視圖和URLpatterns,但你不要嘗試直接修改其中的任何代碼,因為里面有很多地方可以讓你自定義管理工具的工作方式。 (如果你確實想瀏覽Django管理工具的代碼,請謹記它在讀取關於模塊的元數據過程中做了些不簡單的工作,因此最好花些時間閱讀和理解那些代碼。)
最后說明一點這個管理界面不一定適合你要做的項目應用中,僅作為理解學習Django。當然對於簡單的一些資訊新聞類可以直接采用這個管理后台,更多的這方面的可以訪問https://docs.djangoproject.com/en/dev/ref/contrib/admin/