Django-admin模块

Admin后台管理模块的使用

Django的管理员模块是Django的标准库django.contrib的一部分。这个包还包括其它一些实用的模块:

django.contrib.auth

django.contrib.sessions

django.contrib.comments

激活admin模块的方法是:

1. 在INSTALLED_APPS设置文件中,加入‘django.contrib.admin‘

2. 再添加

‘django.contrib.auth‘,

‘django.contrib.contenttypes‘

‘django.contrib.sessions‘

因为admin模块依赖

3. 在MIDDLEWARE_CLASSES属性中添加

‘django.middleware.common.CommonMiddleware‘,

‘django.contrib.sessions.middleware.SessionMiddleware‘

‘django.contrib.auth.middleware.AuthenticationMiddleware‘.

也是因为依赖

4. 运行python manage.py syncdb,用于创建为admin等模块创建新的数据库表。

因为apps中有auth模块,会要求你创建一个超级用户。如果你取消这步,

也可以运行python manage.py createsuperuser。当且仅当,你安装了auth模块。

5. 在urls.py中设置admin映射

# Include these import statements...

from django.contrib import admin

admin.autodiscover()

# And include this URLpattern...

urlpatterns = patterns(‘‘,

# ...

(r‘^admin/‘, include(admin.site.urls)),

# ...

)

6. 记住在你的模块中增添admin模板文件,可以复制django自带模板,注意在模块路径中添加

admin文件夹。

D:\Python27\Lib\site-packages\django\contrib\admin\templates\admin\base_site.html

7. 运行python manage.py runserver,网址中输入http://localhost:8000/admin/

8. admin界面默认是显示英语,如果要显示你需要的语言:

在MIDDLEWARE_CLASSES属性中添加‘django.middleware.locale.LocaleMiddleware‘,并确保它

排列在SessionMiddleware后面。重新刷新admin页面

在admin页面中管理models模块:

1. 需要在你的app下创建一个admin.py文件,并对你的model类进行注册

from django.contrib import admin

from mysite.books.models import Publisher, Author, Book

admin.site.register(Publisher)

admin.site.register(Author)

admin.site.register(Book)

2. 当你在project文件夹中添加新的文件时,需要重启server才能生效。

3. 如果想要你的admin界面中的添加数据功能生效,需要在MIDDLEWARE_CLASSES属性中添加

‘django.contrib.messages.middleware.MessageMiddleware‘,

自定义admin模块的显示

1. 取消在添加数据时,每一个字段都需要输入的限制

在model类中做相应的修改就可以了:

class Author(models.Model):

first_name = models.CharField(max_length=30)

last_name = models.CharField(max_length=40)

email = models.EmailField(blank=True)

只需要在字段声明中,设置blank=True,默认是False

关于NULL与空字符串的区别

在数据库操作中,NULL和空字符串""是两上不同的概念,有些数据库类型即能接受NULL值,又能接受

空字符串类型,例如,varchar类型,到底什么时候使用这两者,久而久之,容易造成数据的不一致,为

了避免这样的情况,Django默认是把blank=True这样的字段,统一做为空字符串插入到数据库中。同

时,在创建数据表的时候,所有字段统一默认使用NOT NULL。

但是,当遇到时间,日期类型的时候,空字符串反而会出错。这个时候,又需要使用NULL,只需要在model

字段声明中加入:

publication_date = models.DateField(blank=True, null=True)

一旦你加入null=True声明,这样就相当于改变了数据库表结构,类似SQL语句中的

alter table books_book modify publication_date date null;

然而之前说过,Django的python manage.py syncdb只能用表创建新表,不能更改表结构,所以这时你需要

在数据库中进行更新表结构操作。

在admin界面的编辑页面中,字段名字的显示是根据model类中的变量名来显示的,大写第一个字母,把下划线改

成空格显示出来。自定义显示可以使用verbose_name参数

email = models.EmailField(blank=True, verbose_name=‘e-mail‘)

使用ModelAdmin来管理model在admin页面中的显示

  • 自定义chanle list界面

ModelAdmin类似界面管理类,可以定义不同的显示细节。用法如下:

from django.contrib import admin from mysite.books.models import Publisher, Author, Book
class AuthorAdmin(admin.ModelAdmin):     list_display = (‘first_name‘, ‘last_name‘, ‘email‘)#把字段信息全部显示出来

search_fields = (‘first_name‘, ‘last_name‘) #添加search bar,在指定的字段中search

class BookAdmin(admin.ModelAdmin):

list_display = (‘title‘, ‘publisher‘, ‘publication_date‘)

list_filter = (‘publication_date‘,)#页面右边会出现相应的过滤器选项

date_hierarchy = ‘publication_date‘ #只接受日期类型的字段名

ordering = (‘-publication_date‘,) #排序

admin.site.register(Publisher) admin.site.register(Author, AuthorAdmin) admin.site.register(Book, BookAdmin)

  • 自定义edit form界面

fields = (‘title‘, ‘publisher‘, ‘authors‘, ‘publication_date‘) #edit界面就按这个顺序显示

还可以定义可编辑的字段

fields = (‘title‘, ‘authors‘, ‘publisher‘)

这样Django会自动给publication_data设置为null,记得null=True设置为null值

当遇到many-to-many的多选的字段类型时,Django自动提供上图中的选择方式,不过还可以

选择用其它方式来进行多选,这种方式更加直观,不过只能作用于many-to-many的多选字段,

不能应用于foreignkey字段。

filter_horizontal = (‘authors‘,)

当然也有filter_vertical...

对于ForeighKey字段,也有相应的设置,用来输入字段的ID,点击边上的

放大镜图标,也会弹出选择框

raw_id_fields = (‘publisher‘,)

关于用户,组,权限

Django提供了很详细的权限设置方案。包括对每一张表的控制权限。

时间: 2024-08-08 13:11:22

Django-admin模块的相关文章

django admin 模块添加 static

目前路径是在 /var/www/jastme/static 但是admin的静态文件不在这个位置,那么怎么办呢? 首先到项目下,就是有manage.py的这个目录 编辑项目下的setting.py 首先加上STATIC_ROOT = '/var/www/jastme/static/' 重启uwsgi 使用python manage.py collectstatic 选择yes,会在static目录下生成一个admin的目录 这个时候我们打开admin的网站,会发现静态文件仍然加载错误,因为路径使

Django Admin后台管理模块的使用

Admin后台管理模块的使用 Django的管理员模块是Django的标准库django.contrib的一部分.这个包还包括其它一些实用的模块: django.contrib.auth django.contrib.sessions django.contrib.comments 激活admin模块的方法是: 1. 在INSTALLED_APPS设置文件中,加入'django.contrib.admin' 2. 再添加 'django.contrib.auth', 'django.contri

django 开发之给admin 模块添加富文本编辑器

第一步下载kindeditor  http://kindeditor.net/demo.php 下载下来后放到静态文件static 下面的js下面 接着在admin 模块文章类下引入这富文本编辑器: class ArticleAdmin(admin.ModelAdmin): 下面 接着添加一个文件名字为config.js  添加一些配置

Django Admin后台管理功能使用(学习版)

一.前言: 在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: from django.contrib import admin urlpatterns = [    url(r'^admin/',admin.site.urls), ] 上边看到导入的admin模块 二.主要功能: 功能1:提供数据库管理功能 基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查 功能2:二次开发 基于该模块的数据管理功能,可以二次定制一些实用的功能. 三

Django admin site(一)ModelAdmin Options

Admin管理界面是django的杀手级应用.它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容. 要使用admin,可以按照下面的步骤: 将'django.contrib.admin'加入setting的INSTALLED_APPS配置中. 保证INSTALLED_APPS中包含'django.contrib.auth','django.contrib.contenttypes','django.contrib.messages'和'djan

Python菜鸟之路:Django Admin后台管理功能使用

前言 用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), ] 上边看到导入的admin模块,就是本节所要说的主要内容 主要功能 功能1:提供数据库管理功能 基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查 功能2:二次开发 基于该模块

Python程序猿必知会的Django用户模块扩展方法

本文和大家分享的主要是Django用户模块的扩展相关知识,希望可以帮助大家更好的学习Django ,一起来看看吧. Django内置的用户验证系统十分强大.大多数情况下,它可以拿来就用,能帮我们省去很多开发.测试的工作.它能满足大多数的使用情况并且很安全.但是有时候,为满足我们的网络应用需求,需要对它进行一些微调. 一般来说,我们希望更多地存储与用户有关的数据.如果你的网络应用具有社交属性,你可能希望存储用户简介.地理位置以及其他相关的东西. 在此教程里,我将简单呈现扩展Django用户模型的方

python+pycharm+django admin css样式出问题

最近打算学习一下Python,基础知识有了大概的了解,想上手搞搞东西. 我用的python 3.5+pycharm+django 1.11.2 在使用Django,打开127.0.0.1:8000/admin时,发现admin模块css样式文件丢失,无法调用 按F12 发现admin/base.html文件出问题. base.html文件路径: python35\Lib\site-packages\django\contrib\admin\templates\admin 解决方法: 1.删除ba

Django admin 组件 原理分析与扩展使用 之 sites.py (一)

一 . 前言 Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). 本篇文章通过 admin源码 简单分析admin 内部原理 ,扩展使用方式,为以后进行定制和自己开发组件做铺垫. 二. 简单使用 1.在app 目录下的admin.py 中通过注册表 from django.contrib import admin from blog01.models import * admin.site.register([UserInfo,User,Blog]) #

Django 2.0 学习(05):Django Admin

Django Admin 站点的管理者,而非访问者. 创建admin用户 首先,执行下面命令: python manage.py createsuperuser 其次,输入用户名和密码: Username:admin 在输入用户名之后,会提示输入邮箱地址,随便输入即可: Email address:[email protected] 最后,输入密码(最好使用数字和字符的组合,不然会被提示密码过于简单): Password: ********** Password (again): *******