django(1.4) 的 admin站点管理 ,简单而又实用,掌握了会带来很多的便利。
使用admin站点管理,你需要做2步工作:一是激活(启动)管理界面,二是配置模型(你要管理的模型)的管理界面。
一、如何激活管理界面
- 对settings文件做如下这些改变:
2)保证INSTALLED_APPS中包含'django.contrib.auth','django.contrib.contenttypes'和 'django.contrib.sessions',Django的管理工具需要这3个包。
3)确保MIDDLEWARE_CLASSES 包含
'django.middleware.common.CommonMiddleware' ,
'django.contrib.sessions.middleware.SessionMiddleware' ,
'django.contrib.auth.middleware.AuthenticationMiddleware' 。
- 运行 pythonmanage.pysyncdb 。这一步将生成管理界面使用的额外数据库表。 当你把'django.contrib.auth'加进INSTALLED_APPS后,第一次运行syncdb命令时, 系统会请你创建一个超级用户。 如果你不这么作,你需要运行pythonmanage.pycreatesuperuser来另外创建一个admin的用户帐号,否则你将不能登入admin。
- 将admin访问配置在URLconf(记住,在urls.py中). 默认情况下,命令django-admin.pystartproject生成的文件urls.py是将Django admin的路径注释掉的,你所要做的就是取消注释:(r'^admin/', include(admin.site.urls))
(此时,可启动开发服务器(如前:"python manage.py runserver 0.0.0.0:8000" ),然后在浏览器中访问:http://127.0.0.1:8000/admin/,如果出现登录页面,表示配置成功)
二、如何配置相应模型的管理页面
前提:假设已经有一个 djangoTest 的djgango项目,且创建了一个app应用djmanage,models.py如下:
from django.db import models from django.contrib import admin # Create your models here. class User(models.Model): id = models.AutoField(primary_key=True,db_column="ID") name = models.CharField(max_length=30,db_column="NAME") pwd = models.CharField(max_length=33,db_column="PASSWORD") class Meta: db_table="USER" class UserInfo(models.Model): id = models.AutoField(primary_key=True,db_column="ID") uid = models.ForeignKey(User) realname = models.CharField(max_length=30) telephone = models.CharField(max_length=15) address = models.CharField(max_length=160) class Meta: db_table="USER_INFO"
在你原先已经正常运行的程序下,只要在相应的app应用目录下添加一个如下的admin.py文件(可说是app模型管理界面的配置文件)即可。
from django.contrib import admin from djangoTest.djmanage.models import User,UserInfo #定义了一个模型管理类 class UserAdmin(admin.ModelAdmin): list_display = ('id','name','pwd')#选项控制变更列表所显示的列。缺省情况下变更列表只显示对像包含的表征字符串。 list_filter = ('id','name')#选项在右边创建一个过滤条。 ordering = ('id',)#选项控制对象在管理界面显示时的排序方式。它是想要按序排列的字段的列表;前面带减号(-)的按逆序排序。 search_fields =('name',)#选项创建了一个允许搜索文本内容的域。 admin.site.register(User,UserAdmin)#关联 模型与模型管理类 admin.site.register(UserInfo)#此处是关联了默认的模型管理类