Django项目创建之---Admin及过滤器的实现(四)
2017-10-25 17:15
435 查看
什么是Admin?
Admin是Django自带的一个功能强大的自动化数据管理界面(后台管理系统)
被授权的用户可直接在Admin中管理数据库
Django提供了许多针对Admin的定制功能(强大)
配置Admin
创建用户
1.cmd进去项目中,执行python manage.py createsuperuser输入用户名,邮箱 ,密码等信息。这里需要提醒注意的是密码不允许为12345678等等之类的简单的密码,可以使用自己的名字的全拼,效果如下图:
2.成功之后,打开浏览器,地址栏中输入localhost:8000/admin,可以看到如下界面
输入用户名密码即可进入
3.此时,可以看到进入后的界面都是英文,如果想修改为中文,我们可以进入项目的settings.py中修改
LANGYAGE_CODE = ‘zh_Hans’
然后刷新页面就可以看到中文界面了。
配置应用
1.在应用下admin.py中引入自身的models模块(或里面的模型类)
2.编辑admin.py,代码如下:
在这里,需要特别强调一下,修改admin.py的时候,只是写from models import Article 会报错找不到models,所以需要改成.models或者blog.models才可以
修改数据
1.点击Article超链接进入Article列表页面(点击Blog–>Articles)如下图:
2.点击任意一条数据,进入编辑页面修改
3.编辑页面下方一排按钮可执行响应的操作
扩展
从图中可以看出,ARTICLE列表中显示的是Article Object,这个标题并不是我们数据库表中对应的数据,因此很不方便使用。
为什么会显示成Article Object?因为Article Article Object是类的一个实例对象,它是类实例的默认名称怎么修改Article Object为对应的数据?
在Article类下添加一个方法,根据Python版本选择:
如果使用的是Python3.X,则使用str(self)__
如果使用的是Python2.X,则使用 unicode(self)
之后return self.title.
models.py代码如下:
刷新页面,列表数据已成功修改。
Admin的扩展
如上图所示,在Admin中的Article列表中,我们只能看到一列标题的内容,可是如果我们想显示多列信息(其他字段)要如何操作呢 ?
实现步骤
创建admin配置类:
1.class ArticleAdmin(admin.ModelAdmin)
2.注册admin.site.register(Article, ArticleAdmin)
3.显示其他字段,使用list_dislplay,它同时支持tuple和list
admin.py代码如下:
admin的过滤器的实现
1.自行在models.py中的Article类中添加pub_time字段,如下
pub_time = models.DateTimeField(null=True),然后执行python manage.py makemigrations和python manage.py migrate做数据迁移
2.使用list_filter,修改后的admin.py代码如下:
效果如下图所示
Admin是Django自带的一个功能强大的自动化数据管理界面(后台管理系统)
被授权的用户可直接在Admin中管理数据库
Django提供了许多针对Admin的定制功能(强大)
配置Admin
创建用户
1.cmd进去项目中,执行python manage.py createsuperuser输入用户名,邮箱 ,密码等信息。这里需要提醒注意的是密码不允许为12345678等等之类的简单的密码,可以使用自己的名字的全拼,效果如下图:
2.成功之后,打开浏览器,地址栏中输入localhost:8000/admin,可以看到如下界面
输入用户名密码即可进入
3.此时,可以看到进入后的界面都是英文,如果想修改为中文,我们可以进入项目的settings.py中修改
LANGYAGE_CODE = ‘zh_Hans’
然后刷新页面就可以看到中文界面了。
配置应用
1.在应用下admin.py中引入自身的models模块(或里面的模型类)
2.编辑admin.py,代码如下:
from django.contrib import admin from .models import Article admin.site.r 4000 egister(Article) # 将模型类注册进来
在这里,需要特别强调一下,修改admin.py的时候,只是写from models import Article 会报错找不到models,所以需要改成.models或者blog.models才可以
修改数据
1.点击Article超链接进入Article列表页面(点击Blog–>Articles)如下图:
2.点击任意一条数据,进入编辑页面修改
3.编辑页面下方一排按钮可执行响应的操作
扩展
从图中可以看出,ARTICLE列表中显示的是Article Object,这个标题并不是我们数据库表中对应的数据,因此很不方便使用。
为什么会显示成Article Object?因为Article Article Object是类的一个实例对象,它是类实例的默认名称怎么修改Article Object为对应的数据?
在Article类下添加一个方法,根据Python版本选择:
如果使用的是Python3.X,则使用str(self)__
如果使用的是Python2.X,则使用 unicode(self)
之后return self.title.
models.py代码如下:
from __future__ import unicode_literals from django.db import models from django.db.models import Model class Article(models.Model): title = models.CharField(max_length=32, default='Title') # max_length为约束长度,default为默认值 content = models.TextField(null=True) # null=True为允许为空 def __str__(self): return self.title
刷新页面,列表数据已成功修改。
Admin的扩展
如上图所示,在Admin中的Article列表中,我们只能看到一列标题的内容,可是如果我们想显示多列信息(其他字段)要如何操作呢 ?
实现步骤
创建admin配置类:
1.class ArticleAdmin(admin.ModelAdmin)
2.注册admin.site.register(Article, ArticleAdmin)
3.显示其他字段,使用list_dislplay,它同时支持tuple和list
admin.py代码如下:
from django.contrib import admin from .models import Article class ArticleAdmin(admin.ModelAdmin): list_display = ('title', 'content') admin.site.register(Article, ArticleAdmin)
admin的过滤器的实现
1.自行在models.py中的Article类中添加pub_time字段,如下
pub_time = models.DateTimeField(null=True),然后执行python manage.py makemigrations和python manage.py migrate做数据迁移
2.使用list_filter,修改后的admin.py代码如下:
from django.contrib import admin from .models import Article class ArticleAdmin(admin.ModelAdmin): list_display = ('title', 'content', 'pub_time') list_filter = ('pub_time', ) # 因为这里使用的是tuple,所有当括号里只有一个成员的时候也必须加上末尾的“,” admin.site.register(Article, ArticleAdmin)
效果如下图所示
相关文章推荐
- django简单实现项目和app的创建,并通过admin管理界面管理
- django-admin.py在win7 64位下不能创建工程、项目和执行命令的解决办法
- django-admin.py startproject 无法创建项目
- django之创建第6-2个项目-过滤器列表
- Pycharm创建Django项目并访问Django admin
- win7安装django后django-admin.py无法创建项目的解决办法
- django之创建第6个项目-过滤器
- django之创建第7-4个项目-配置views文件实现url传值
- Django开发(一)——创建项目,实现数据模型
- 执行django-admin.py startproject test后,无法创建项目的解决办法
- django之创建第9个项目-管理后台admin
- 【Django异常】django-admin.py startproject Project只能调出来django-admin.py而不创建项目
- [置顶] django-admin.py startproject mysite创建项目打开编辑器的问题的解决
- 使用django-admin.py创建Django项目
- 使用django-admin创建项目出错,can't open file 'django-admin.py'
- django创建第一个项目时,django-admin.py startproject name_of_project 失效
- django之创建第6-1个项目-自定义过滤器
- django创建项目Python manage.py runserver报错
- python下的web开发框架-Django,创建项目
- 【SSH网上商城项目实战18】过滤器实现购物登录功能的判断