十、Django之Admin
作者:@skyflask
转载本文请注明出处:https://www.cnblogs.com/skyflask/p/9398636.html
目录
一、Django Admin 管理工具
二、激活管理工具
三、使用管理工具
四、admin界面汉化
五、自定义展示字段
六、字段汉化
七、其他特殊设置
一、Django Admin 管理工具
Django 提供了基于 web 的管理工具。
Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它:
1 2 3 4 5 6 7 8 9 | 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 中自动设置好,我们只需去掉注释即可。
配置项如下所示:
1 2 3 4 5 6 7 | 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:
1 2 3 4 5 6 7 | 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文件中新增如下内容:
1 2 3 4 5 | class PlaceAdmin(admin.ModelAdmin): list_display =('name','address') # Register your models here. admin.site.register(Place,PlaceAdmin) |
这样会展示展示list_display中的内容:
六、字段汉化
我们在admin后台中看到的字段都是在models中定义的字段名称,一般为英文的字段:
我们新增汉化内容:
1 2 3 4 5 6 7 8 | 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:指定搜索的字段
1 2 3 | class PlaceAdmin(admin.ModelAdmin): list_display =('name','address') search_fields = ('name',) |
2、list_filter:指定列表过滤器
1 2 3 4 | class PlaceAdmin(admin.ModelAdmin): list_display =('name','address') search_fields = ('name',) list_filter = ('address',) |
3、ordering:指定排序字段
1 2 3 4 5 | class PlaceAdmin(admin.ModelAdmin): list_display =('name','address') search_fields = ('name',) list_filter = ('address',) ordering = ('address',) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」