十、Django之Admin
一、Django Admin 管理工具
Django 提供了基于 web 的管理工具。
Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
django.contrib是一套庞大的功能集,它是Django基本代码的组成部分。
二、激活管理工具
通常我们在生成项目时会在 urls.py 中自动设置好,我们只需去掉注释即可。
配置项如下所示:
from django.conf.urls import url,include
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls')),
]
当这一切都配置好后,Django 管理工具就可以运行了。
三、使用管理工具
启动开发服务器,然后在浏览器中访问 http://127.0.0.1/admin/,得到如下界面:

为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin。比如,我们之前在 blog.models 中已经创建了模型Place,Restaurant,Waiter
。修改blog/admin.py:
from django.contrib import admin
from blog.models import Blog,Author,Place,Restaurant,Waiter # Register your models here.
admin.site.register(Place)
admin.site.register(Restaurant)
admin.site.register(Waiter)
刷新后即可看到 Place,Restaurant,Waiter 数据表:

这时,我们就可以管理数据表了。
四、admin界面汉化
默认admin后台管理界面是英文的,对英语盲来说用起来不方便。可以在settings.py中设置:
- LANGUAGE_CODE = 'zh-CN'
- TIME_ZONE = 'Asia/Shanghai'
1.8版本之后的language code设置不同:
- LANGUAGE_CODE = 'zh-hans'
- TIME_ZONE = 'Asia/Shanghai'
五、自定义展示字段
默认只会展示class中__str__()打印的内容,但是我们可以通过扩展让其显示跟多的字段,通过在admin.py文件中新增如下内容:
class PlaceAdmin(admin.ModelAdmin):
list_display =('name','address') # Register your models here.
admin.site.register(Place,PlaceAdmin)
这样会展示展示list_display中的内容:

六、字段汉化
我们在admin后台中看到的字段都是在models中定义的字段名称,一般为英文的字段:

我们新增汉化内容:
class Restaurant(models.Model):
place = models.OneToOneField(
Place,
on_delete=models.CASCADE,
primary_key=True,
verbose_name='餐馆地址')
serves_hot_dogs = models.BooleanField(default=False,verbose_name='供用热狗')
serves_pizza = models.BooleanField(default=False,verbose_name='供用披萨')
汉化后效果为:

七、其他特殊设置
1、 search_fields:指定搜索的字段
class PlaceAdmin(admin.ModelAdmin):
list_display =('name','address')
search_fields = ('name',)

2、list_filter:指定列表过滤器
class PlaceAdmin(admin.ModelAdmin):
list_display =('name','address')
search_fields = ('name',)
list_filter = ('address',)

3、ordering:指定排序字段
class PlaceAdmin(admin.ModelAdmin):
list_display =('name','address')
search_fields = ('name',)
list_filter = ('address',)
ordering = ('address',)

十、Django之Admin的更多相关文章
- Django笔记 —— Admin(Django站点管理界面)
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- [django]Django站点admin支持中文显示和输入设置
正文: Django站点admin支持中文输入设置,操作如下: 1 需要确定的你的数据库的client客户端和服务端的编码设置为utf-8,如果不是,请将其设置成utf-8编码,我采用mysql,详情 ...
- Django之admin界面恢复及添加数据模型
引自:http://fl0wjacky.github.io/jekyll_demo/2014/07/14/Django-admin.html Django之admin界面恢复及添加数据模型 Djang ...
- grappelli美化django的admin页面
开始用admin时候,觉得它的页面实在...宁愿自己写modules,多费点时间 grappelli可以把admin变得非常美观,配置起来也很简单 第一步,先下载grappelli,搜索一下,wind ...
- django: db - admin
本讲演示简单使用 Django Admin 功能. 一,修改 settings.py,添加 admin 应用: INSTALLED_APPS = ( 'django.contrib.auth', 'd ...
- django之admin流程
admin 类复习: class Base(object): def __init__(self,val): self.val = val def func(self): self.test() pr ...
- Django的admin.py注册流程
通常创建一个Django项目的时候,在Django的配置文件settings.py中,都会有下面的这段配置: INSTALLED_APPS = [ 'django.contrib.admin', 'd ...
- 【django之admin,单例模式】
一.admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTAL ...
- Django之admin的使用和源码剖析
admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...
随机推荐
- 3、Dubbo-环境搭建
官方推荐使用 Zookeeper 注册中心 3.1).[windows]-安装zookeeper 开发中均在Linux中安装!!! 1.下载zookeeper 网址 https://archive.a ...
- Python 多线程 进程与线程相关概念 (一)
0x00 并行和并发 并行:同时做某些事,可以互不干扰的同一时刻做几件事. 并发:也是同时做某些事,但是强调,同一时刻做了几件事. 0x01 并发的解决: 1)队列.缓冲区: 排队就是队列,先进先出. ...
- SDOI2018一轮NOI培训 题目整理
\(qwq\)首先,这些题对于我而言--类似于\(emmm\)洪水猛兽 \(\mathcal{Day \ \ 1}\) T1 \(\mathcal{\color{red}{Description}}\ ...
- linux内核追踪(trace)(QEMU+gdb)
1.引言 Linux内核是一个很大的模块,如果只是看源码有时会难以理解Linux内核的一些代码设计情况,如果可以结合Linux内核运行同时阅读源码再好不过,本文大致介绍Linux内核追踪方式,采用工具 ...
- Linux下gdb调试(tui)
1 处于TUI模式的GDB 为了以TUI模式运行GDB,可以在调用GDB时在命令行上指定-tui选项,或者处于非TUI模式时在GDB中使用Ctrl+X+A组合键.如果当前处于TUI模式,后一种命令方式 ...
- 如何使用jquery.qrcode.js插件生成二维码
1.首先需要准备 jquery.qrcode.js 和 jquery.js github地址:https://github.com/lrsjng/jquery-qrcode 官方文档地址:http:/ ...
- 关于换行这个动作,win 和 mac 的实现
‘\r'是回车,前者使光标到行首,(carriage return)'\n'是换行,后者使光标下移一格,(line feed) \r 是回车,return\n 是换行,newline 对于换行这个动作 ...
- 【腾讯敏捷转型No.5】需求没做完可以发布嘛
很多人对于敏捷的第一直觉就是“快”,开发快,测试快,发布快,并不知道如何把这个“快”应用到敏捷实践中,下面我们来分析一下导致工作效率低的核心原因.没有使用敏捷之前,在大多数情况下,项目管理都需要开各种 ...
- angular4 防二次重复点击
监听click事件, 默认三秒钟内的点击事件触发第一次的点击事件,也可以通过throttleTime自定义时间 只触发第一次 /** * <div (throttleClick)="g ...
- PHP连接mysql8.0出错“SQLSTATE[HY000] [2054] The server requested authentication method unknow.....
这个错可能是mysql默认使用 caching_sha2_password作为默认的身份验证插件,而不再是 mysql_native_password,但是客户端暂时不支持这个插件导致的. 解决方法一 ...