Python技巧
daphne+nginx+channels+redis 在Ubuntu 24.04布署流程
ubuntu24设置uwsgi和nginx开机自启动(设置并开启service)
如何在Ubuntu 24.04上使用uwsgi+django+Nginx来部署python3应用程序
开启nginx 开机自启动服务
网站建设
ubuntu 裸机安装相关包
sitemap.xml相关操作
项目更新时数据表迁移相关操作
ubuntu 防攻击,扫描相关的命令
ubuntu 运维相关的命令
DetailView 的自动机制
C盘清空指南
ubuntu 上的 Redis 配置
linux ubuntu centos 清理垃圾
在nginx 里 配置跨域访问控制
MYSQL数据库常用操作命令
将MYSQL数据库从一台服务器移植到另一台服务器
向Mysql插入Emoji表情时失败了,python代码报以下异常:InternalError: 1366
Centos7+nginx下为域名免费安装ssl证书
Centos7,Centos8防火墙相关的命令
Centos7.5+nginx布署python3+django WEB服务器
js/jQuery技巧
VPS推荐
在 Google Search Console(谷歌搜索控制台)相关操作
如何在 本地win11 安装 Rclone,并使用Rclone上传文件到Cloudflare
域名申请
111111
构建安卓APP
Android Studio 如何修改 Package Name
Android使用WebView将H5网站打包成apk,如何去掉标题,如何更换应用图标
Android使用WebView加载网站,无法上传图片的解决方法
DetailView 的自动机制
前端html {% for tag in video.get_tags %} class VideoDetailView(generic.DetailView) 这个类似乎没有传递 video 给 前端play.html ,这个 video 是从哪里来,虽然页面可以渲染,但有点茫然,请解惑
一,video 是 Django DetailView 自动传递的,不需要手动传。 class VideoDetailView(generic.DetailView): model = Video template_name = 'base/play.html' Django 的 DetailView 做了这些事: 1. 从 URL 里取 pk(如 /video/detail/3551/) 2. 自动执行 Video.objects.get(pk=3551) 3. 自动把查到的对象传给模板 传给模板的变量名规则: model = Video → 变量名自动变成 video(模型名小写) model = Classification → 变量名自动变成 classification
二,对比 ListView # ListView 需要手动指定变量名 class IndexView(generic.ListView): model = Video context_object_name = 'video_list' # 手动指定,否则默认是 object_list # DetailView 不需要指定,自动用模型名小写 class VideoDetailView(generic.DetailView): model = Video # 模板里自动有 video 变量,也有 object 变量(两个都能用)
三,所以模板里这些都能用 {{ video.title }} ← 用模型名小写,推荐 {{ object.title }} ← 用 object,也能用 两个指向同一个对象,video 只是 object 的别名,Django 自动帮你起好了名字。
删除文章
展示文章
友情链接
2026.6.8