You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改模板路径后服务器未识别,报TemplateDoesNotExist错误求助

解决Wagtail Block模板路径修改后仍报TemplateDoesNotExist的问题

这问题我之前维护Wagtail项目时也踩过坑!明明改了CollapsiblePanelBlock的Meta模板路径,服务器却死咬着旧路径不放,重启和makemigrations都不管用,简直离谱。咱们一步步排查解决:

1. 先清Django的模板缓存

Django会把已加载的模板缓存起来,哪怕你改了代码,缓存里还是旧的路径。直接跑这个命令:

python manage.py clearcache

如果是开发环境,也可以试试删除项目根目录下的__pycache__文件夹,然后重启runserver——有时候自动重载没跟上Meta类的修改。

2. 检查有没有其他地方硬引用了旧模板

别光盯着Block类,看看这些地方:

  • 有没有模板文件用{% include "base/panel.html" %}直接引用了旧路径?
  • 其他Block类或者页面模型有没有复用这个模板?
  • 是不是在settings.py的TEMPLATES配置里,某个模板目录下还有一份base/panel.html,导致Django优先加载了它?

3. 确认新模板的位置完全正确

你改后的路径是block/panel.html,那要确保你的模板目录结构是这样的:

your_project/
    templates/
        block/
            panel.html

而且settings.py的TEMPLATES里的DIRS或者APP_DIRS要能找到这个templates目录。比如:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        # ...其他配置
    },
]

4. 强制刷新Wagtail的Block定义

Wagtail有时候会缓存Block的元数据,尤其是生产环境。可以试试这个小技巧:

  • 临时把Block类的名字改成CollapsiblePanelBlockV2(随便加个后缀)
  • 运行python manage.py makemigrations和python manage.py migrate
  • 再把名字改回原来的CollapsiblePanelBlock,重新跑一遍迁移
    这会强制Django和Wagtail重新识别这个Block的配置,包括模板路径。

最后再验证一遍你的代码修改

你给出的代码修改是对的,对比一下:
修改前:

class CollapsiblePanelBlock(blocks.StructBlock):
    title=blocks.CharBlock()
    body=blocks.StreamBlock([
        ('paragraph', blocks.RichTextBlock()),
    ])
    class Meta:
        template='base/panel.html'
        icon='folder-inverse'
        label='Collapsible Panel'

修改后:

class CollapsiblePanelBlock(blocks.StructBlock):
    title=blocks.CharBlock()
    body=blocks.StreamBlock([
        ('paragraph', blocks.RichTextBlock()),
    ])
    class Meta:
        template='block/panel.html'
        icon='folder-inverse'
        label='Collapsible Panel'

确认没有拼写错误,比如block有没有写错,模板文件名是不是panel.html(Linux服务器上大小写敏感!)

按这些步骤走,应该就能解决这个顽固的缓存问题了!

内容的提问来源于stack exchange,提问作者jeffreyb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:56:03