1. 开启 Admin 模块:
settings.py:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
urls.py:
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
# And include this URLpattern...
urlpatterns = patterns('',
# ...
(r'^admin/', include(admin.site.urls)),
# ...
)
执行 "manage.py syncdb" 创建数据表,"manage.py runserver" 打开调试服务器, 就可以通过http://127.0.0.1:8000/admin/访问管理模块了。
2. 为什么是 include(admin.site.urls) ?
a. 首先 app名字为 admin.
b. admin 文件夹的__init__.py里面 "from django.contrib.admin.sites import AdminSite, site", 另外 sites.py里面有 site = AdminSite(), 则 “admin.site” 指向 admin.sites.AdminSite
c. class AdminSite 里面对urls 定义为:
def urls(self):
.....
urls = property(urls)
所以"admin.site.urls" 指向的是 admin.sites.AdminSite.urls
3. 将 admin 模块作为一个单独的应用部署:
a. 将 django.contrib下面的admin文件夹拷贝到myproject下面
b. 在settings.py 中添加myproject 的admin应用
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'myproject.admin',
# Uncomment the next line to enable the admin:
#'django.contrib.admin',
urls.py:import admin
admin.autodiscover()
# And include this URLpattern...
urlpatterns = patterns('',
# ...
(r'^admin/', include(admin.site.urls)),
# ...
)
执行 "manage.py syncdb" 创建数据表,"manage.py runserver" 打开调试服务器, 就可以通过http://127.0.0.1:8000/admin/访问管理模块了。