在上一篇中,我们自己定义了数据库模型(models.py),并已同步至数据库中,那么如何插入、更新、删除表中数据呢?方法有很多,比如直接写SQL语句在数据库层面插入或调用模型的API,但这两种方法都需要写代码实现,可不可以有更直观页面操作呢?答案当然是肯定的,这就是Django自带的Admin模块,本篇主要讲述它。
首先,我们需要通过以下步骤开启Admin模块:
第一步:对settings.py做如下修改:
1)保证INSTALLED_APPS中包含'django.contrib.auth','django.contrib.contenttypes'和'django.contrib.sessions'(因为我们之前已经使用了Django自动的用户认证系统,因此这三个包应该就在开启的状态)
2)在INSTALLED_APPS中把'django.contrib.admin'和'django.contrib.admindocs'的注释去掉
3)确保MIDDLEWARE_CLASSES 包含'django.middleware.common.CommonMiddleware' 、'django.contrib.sessions.middleware.SessionMiddleware' 和'django.contrib.auth.middleware.AuthenticationMiddleware'
第二步:运行 python manage.py syncdb 。这一步将生成管理界面使用的额外数据库表
第三步:将admin访问配置在URLconf(记住,在urls.py中). 默认情况下,命令django-admin.py startproject生成的文件urls.py是将Django admin的路径注释掉的,你所要做的就是取消注释。如下所示:
# Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'dbrelease.views.home', name='home'), # url(r'^dbrelease/', include('dbrelease.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), ... )
from django.contrib import admin from .models import * admin.site.register(Manager) admin.site.register(Dba) admin.site.register(State) admin.site.register(Database) admin.site.register(Task)
从以上页面我们发现,除了我们自己定义的模型(Dbrelease_app下的表)外,还有我们之前讲过的Django自带的用户认证模块(Auth)和(Sites)。