当前位置: 首页 > news >正文

Django--admin 后台管理站点

Django最大的优点之一,就是体贴的提供了一个基于项目model创建的一个后台管理站点admin。这个界面只给站点管理员使用,并不对大众开放。虽然admin的界面可能不是那么美观,功能不是那么强大,内容不一定符合你的要求,但是它是免费的、现成的,并且还是可定制的,有完善的帮助文档.
 
如果对admin的界面美观有切实需求,可以尝试使用simpleui库,不要用xadmin.

创建管理员用户

首先,我们需要通过下面的命令,创建一个可以登录admin站点的用户:

python manage.py createsuperuser

输入用户名:

Username: admin

输入邮箱地址

Email address: xxx@xxx.xxx

输入密码:

Password: **********
Password (again): *********
Superuser created successfully.

注意:Django1.10版本后,超级用户的密码要求具备一定的复杂性,如果密码强度不够,Django会提示你,但是可以强制通过。

启动开发服务器

执行runserver命令启动服务器后,在浏览器访问http://127.0.0.1:8000/admin/。你就能看到admin的登陆界面了:
 
小技巧:
  在实际环境中,为了站点的安全性,我们一般不能将管理后台的url随便暴露给他人,不能用/admin/这么简单的路径。

可以将根url路由文件mysite/urls.pyadmin.site.urls对应的表达式,换成你想要的,

比如

from django.contrib import admin from django.urls import path
urlpatterns = [ path('control/', admin.site.urls), 
] 

这样,我们必须访问http://127.0.0.1:8000/control/才能进入admin界面。

进入站点

利用刚才建立的admin账户,登陆admin,你将看到如下的界面:
在这里插入图片描述当前只有两个可编辑的模型:Groups和Users。它们是django.contrib.auth模块提供的身份认证框架内的模型。

注册app

现在还无法看到投票应用,必须先在admin中进行注册,告诉admin站点,请将polls的模型加入站点内,接受站点的管理。

打开polls/admin.py文件,加入下面的内容:

from django.contrib import admin
from .models import Questionadmin.site.register(Question)

站点体验

注册question模型后,等待服务器重启动,然后刷新admin页面就能看到Question栏目了。
在这里插入图片描述这里需要注意的是:

  • 页面中的表单是由Question模型自动生成的。
  • 不同的模型字段类型(DateTimeField, CharField)会表现为不同的HTML input框类型。
  • 每一个DateTimeField都会自动生成一个可点击链接。日期是Today,并有一个日历弹出框;时间是Now,并有一个通用的时间输入列表框。

在页面的底部,则是一些可选项按钮:

  • delete:弹出一个删除确认页面
  • save and add another:保存当前修改,并加载一个新的空白的当前类型对象的表单。
  • save and continue editing:保存当前修改,并重新加载该对象的编辑页面。
  • save:保存修改,返回当前对象类型的列表页面。

如果Date published字段的值和你在前面教程创建它的时候不一致,可能是你没有正确的配置TIME_ZONE,在国内,通常是8个小时的时间差别。修改TIME_ZONE配置并重新加载页面,就能显示正确的时间了。


自定义 admin

 
  Django的admin站点是自动生成的、高度可定制的,它是Django相较其它Web框架独有的内容,广受欢迎。如果你觉得它不够美观,还有第三方美化版simpleUI。请一定不要忽略它,相信我,它值得拥有!

自定义后台表单

  通过admin.site.register(Question)语句,我们在admin站点中注册了Question模型。Django会自动生成一个该模型的默认表单页面。如果你想自定义该页面的外观和工作方式,可以在注册对象的时候告诉Django你的自定义选项。

下面是一个修改admin表单默认排序方式的例子。修改appName/admin.py的代码:

from django.contrib import admin
from .models import Questionclass QuestionAdmin(admin.ModelAdmin):fields = ['pub_date', 'question_text']admin.site.register(Question, QuestionAdmin)

你只需要创建一个继承admin.ModelAdmin的模型管理类,在其中进行一些自定义操作,然后将它作为第二个参数传递给admin.site.register(),第一个参数则是Question模型本身。

上面的修改让Date Published字段显示在Question字段前面了(默认是在后面)。

对于只有2个字段的情况,效果看起来还不是很明显,但是如果你有很多的字段,选择一种直观的符合我们人类习惯的排序方式则非常有用。

但是,当表单含有大量字段的时候,你更多的是想将表单划分为一些字段的集合。

 
  

http://www.lryc.cn/news/332681.html

相关文章:

  • JavaScript(六)---【回调、异步、promise、Async】
  • vue2+elementUi的两个el-date-picker日期组件进行联动
  • GIN实例讲解
  • 开源充电桩设备监控系统技术解决方案
  • 环形链表--极致的简便
  • WPF中TextWrapping
  • Win10 下 git error unable to create file Invalid argument 踩坑实录
  • 简化备案域名查询的最新API接口
  • 基于SpringBoot和Vue的校园周边美食探索以及分享系统
  • TiDB单机版安装和连接访问
  • Spark-Scala语言实战(13)
  • Android compose 使用指纹验证
  • 开源模型应用落地-chatglm3-6b模型小试-入门篇(一)
  • C++实现单例模式
  • 虚幻UE5智慧城市全流程开发教学
  • docker的安装及入门指令
  • 聚能共创下一代智能终端操作系统 软通动力荣膺“OpenHarmony优秀贡献单位”
  • 云服务器ECS租用价格表报价——阿里云
  • 光猫桥接模式详细步骤
  • 构建开源可观测平台
  • SketchUp Pro 2024 for mac 草图大师 专业的3D建模软件
  • 通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(三)
  • 学习 Git 基础知识 - 日常开发任务手册
  • pip和conda 设置安装源
  • 数据分析之Logistic回归分析中的【多元有序逻辑回归】
  • 路由器拨号失败解决方法
  • Oracle 中 where 和 on 的区别
  • NLP学习路线总结
  • AI绘图cuda与stable diffusion安装部署始末与避坑
  • OpenCv —— cv::VideoCapture设置摄像头图像格式为“MJPEG“