十、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',)
最新文章
- 这些HTML、CSS知识点,面试和平时开发都需要 No1-No4
- Android出现java.net.SocketException: Permission denied报错
- sql基本增删改查语法
- Gamma Gamma~!!!
- C#之参数线程
- Scrumworks乱码
- Centos6.5 安装Vim7.4
- VS2013打包与部署
- TreeMap Red-Black tree
- 手脱UPX(堆栈平衡原理)
- mysql 创建用户
- 阿里面试题,深入理解Java类加载机制
- Owin学习笔记(二) 中间件开发
- spring jpa 语法
- SambaJava API
- Python 模块浅析
- ios中创建自己的框架
- 得到当前对象在不同大小的页面中的绝对位置,及冒泡cancelBubble
- 【BZOJ】【1923】【Sdoi2010】外星千足虫
- UVALive-3989 Ladies' Choice (稳定婚姻问题)
热门文章
- [Python]json对象转换出错expected string or buffer python
- 关于python线程池threadpool
- win2003 HookPort 服务启动失败的解决办法!
- [LuoguP4711]分子质量(小模拟+玛丽题)
- stateless 无状态组件
- 并发编程(四)------并发quene
- dispatch 之 常见函数小结
- MySQL8.0.12版本的数据库驱动
- C++练习 | 求解二叉树的高度
- Google Cloud Platform 续