Django-admin

来源:互联网 发布:达芬奇软件作者 编辑:程序博客网 时间:2024/05/29 12:59

django.contrib是一套庞大的功能集,它是django的基本代码组成。
django由众多附加(add-on)组件构成

  • django.contrib
    • admin(管理)
    • auth(用户鉴别系统)
    • sessions(匿名会话)
    • comments(用户评论系统)

激活管理页面
1.django.contrib.admin加入setting的INSTALL-APPS
2.保证APPS有
3.确保MIDDLEWARE有

INSTALLED_APPS = [    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',]MIDDLEWARE = [    'django.contrib.sessions.middleware.SessionMiddleware',    'django.middleware.common.CommonMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',  ]

上面这些选项将在,建立数据库时生成额外的表。
加入’django.contrib.auth’,需要创建一个超级用户,只有含这个auth时createsuperuser才可用

在URLConf配置admin访问

//在项目urls中配置 url(r'^admin/', admin.site.urls),

这样你就可以运行管理页面了


django管理页面中,每一种数据类型都有一个change-list(显示数据对象)、edit-form(数据操纵)

Models加入到Admin中
导入admin模块

from django.contrib import adminfrom .models import Duser,Product,Cart,Publishgoodsadmin.site.register(Duser)admin.site.register(Product)admin.site.register(Cart)admin.site.register(Publishgoods)//通知管理工具为这些模块建立界面

Admin是如何工作的

服务启动—url.py—引导URLconf—执行admin.autodiscover()—遍历INSTALL-APPS—寻找admin.py—执行
admin只显示在admin.py页面中明确注册的模块(admin也是一个app应用)


设置字段可选

#在models中设置blank=True,这样字段可选填,默认为False(必填)class Product(models.Model):    image = models.ImageField(upload_to='products/%Y/%m/%d',                                   blank=True)#这个字段不填的话,数据库中会自动填入空串

设置日期型和数字型字段可选
这两种字段是不接受空串的,
日期型(DateField,TimeField,DateTimeField)
数字型(IntegerField,DecimalField,FloatField)
你需要

date = models.DateField(null=True,blank=True)需要先改变数据语义,在设置选填

最后更新至数据库

自定义标签
在编辑页面中每个字段的标签都是从模块的字段名称中生成的。规则:首写字母大写,下划线用空格

class Product(models.Model):    date = models.DateField(verbose_name="date")#另一种是用位置参数传递class Product(models.Model):    date = models.DateField("date",blank=True)  #但是这种对于外键和多对多是不成立的,因为这种的第一个参数必须是模块

自定ModelAdmin类
blank、verbose_name这些都是模块级别的
对模块的自定义管理工具,在ModelAdmin classes中

自定义列表
模块默认的显示字段是models中的__str,改进

from django.contrib import adminfrom .models import Duser,Product,Cart,Publishgoods# Register your models here.class DuserAdmin(admin.ModelAdmin):    list_display = ('username','password')admin.site.register(Duser,DuserAdmin)#我们新建一个DuserAdmin,派生于ModelAdmin管理类。自定义一项list_display,他是一个字段名称元组,用于列表显示修改Duser调用,后面加上DuserAdmin,用选项注册Duser模块

如果注册时忽略第二个选项,那就使用模块中的默认选项

添加一个快速查询栏

class DuserAdmin(admin.ModelAdmin):    search_fields = ('username')#大小写敏感

过滤器

class DuserAdmin(admin.ModelAdmin):    list_filter = ('username')#按照字段进行过滤,一般用于日期、外键、布尔

排序

class DuserAdmin(admin.ModelAdmin):    ordering = ('-date')#按日期反向排序

自定义表单

class DuserAdmin(admin.ModelAdmin):    fields = ('date''username')#按照字段顺序显示各字段

用户、组、权限

原创粉丝点击