Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么Django模板加载器在生产中区分大小写,但在开发中不区分大小写
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在MacOs Catalina OS上使用<code>manage.py runserver</code>作为开发。我有一些模板适合我内置的基于类的视图。例如:</p> <pre><code>CuadroDeControl_detail.html LoteDeMedio_list.html TipoDeMedio_detail_tablaCuadros.html CuadroDeControl_detail_resumen.html LoteDeMedio_list_tabla.html TipoDeMedio_list.html CuadroDeControl_detail_tablaMetodos.html MetodoDeControl_detail.html TipoDeMedio_list_tabla.html LoteDeMedio_confirm_delete.html MetodoDeControl_detail_resumen.html dropdown_CuadroDeControl.html LoteDeMedio_create.html TipoDeMedio_confirm_delete.html dropwdown_CuadroDeControl.html LoteDeMedio_detail.html TipoDeMedio_detail.html LoteDeMedio_detail_resumen.html TipoDeMedio_detail_resumen.html </code></pre> <p>以下是工作视图的示例:</p> <pre class="lang-py prettyprint-override"><code>class TipoDeMedioDetailView(AreaCalidadMixin, DashboardMixin, DetailView): model = TipoDeMedio </code></pre> <p>请注意,我的视图没有显式地设置<code>template_name</code>。在我的作品中 环境,我所有的视图加载都很好。Django的模板加载器知道视图对应的模板是<code>TipoDeMedio_detail.html</code></p> <p>但是,在我的生产环境中,在Ubuntu 20.04.2 LTS x86_64 Linode VM上使用<code>apache2</code>和<code>mod_wsgi</code>设置,模板加载器无法加载同一视图的模板,因为它使用所有小写字母搜索模板。以下是一个例子:</p> <pre><code>Request Method: GET Request URL: http://45.79.4.38/calidad/TipoDeMedio/lista Django Version: 3.1.6 Exception Type: TemplateDoesNotExist Exception Value: calidad/tipodemedio_list.html Exception Location: /home/jonatan/django-app/venv/lib/python3.8/site-packages/django/template/loader.py, line 47, in select_template Python Executable: /home/jonatan/django-app/venv/bin/python Python Version: 3.8.5 Python Path: ['/home/jonatan/django-app/mysite', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/jonatan/django-app/venv/lib/python3.8/site-packages'] Server time: Mon, 21 Jun 2021 18:24:19 -0500 </code></pre> <pre><code>Template-loader postmortem Django tried loading these templates, in this order: Using engine django: django.template.loaders.filesystem.Loader: /home/jonatan/django-app/mysite/templates/calidad/tipodemedio_list.html (Source does not exist) django.template.loaders.app_directories.Loader: /home/jonatan/django-app/mysite/login/templates/calidad/tipodemedio_list.html (Source does not exist) django.template.loaders.app_directories.Loader: /home/jonatan/django-app/venv/lib/python3.8/site-packages/django/contrib/admin/templates/calidad/tipodemedio_list.html (Source does not exist) django.template.loaders.app_directories.Loader: /home/jonatan/django-app/venv/lib/python3.8/site-packages/django/contrib/auth/templates/calidad/tipodemedio_list.html (Source does not exist) </code></pre> <p>一个简单的修复方法是在我的每个<code>CBV</code>上手动指定我的<code>template_name</code>属性,并指向正确的区分大小写的模板名称(例如<code>TipoDeMedio_detail.html</code>。但是,我确实希望避免这种情况</p> <p>我只是想了解环境之间行为变化的根本原因。这让我相信,在Django行为的其他方面,我也会遇到类似的问题</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>MattRowbum向我指出APFS不区分大小写。我认为这是对行为变化的充分解释。<p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Python中两个字典的交集
5 回答
python中两个字符串上的异或操作数?
4 回答
Python中两个字符串中的类似句子
8 回答
Python中两个字符串之间的Hamming距离
1 回答
python中两个字符串之间的匹配模式
1 回答
python中两个字符串之间的按位或
10 回答
python中两个字符串之间的数据(字节)切片
8 回答
python中两个字符串之间的模式
6 回答
python中两个字符串作为子字符串的区别
5 回答
Python中两个字符串元组的比较
4 回答
Python中两个字符串列表中的公共字符串
2 回答
python中两个字符串的Anagram测试
7 回答
Python中两个字符串的正则匹配
9 回答
python中两个字符串的笛卡尔乘积
8 回答
Python中两个字符串相似性的比较
10 回答
python中两个字符串语义相似度的求法
5 回答
Python中两个字符置换成固定长度的字符串,每个字符的数目相等
3 回答
Python中两个对数方程之间的插值和平滑数据
4 回答
Python中两个对象之间的And/Or运算符
3 回答
python中两个嵌套字典中相似键的和值
3 回答