django admin站点管理 示例

时间:2020-11-29 19:19:54

django(1.4) 的 admin站点管理 ,简单而又实用,掌握了会带来很多的便利。

使用admin站点管理,你需要做2步工作:一是激活(启动)管理界面,二是配置模型(你要管理的模型)的管理界面。


一、如何激活管理界面

  • 对settings文件做如下这些改变:
      1)将 'django.contrib.admin'加入setting的 INSTALLED_APPS配置中, INSTALLED_APPS中的配置顺 序是没有关系的。


      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)#此处是关联了默认的模型管理类