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

使用Django ListView后模板无法找到的问题求助

排查Django ListView模板找不到的问题

以下是几个常见的原因和解决方法:

  • 模板路径错误
    你写的template_name = 'templates/bag_list.html'多了templates/前缀。Django会自动从INSTALLED_APPS中各app的templates目录,以及settings.py里TEMPLATES['DIRS']指定的目录去查找模板,不需要在路径里加templates。
    修正示例:

    • 如果模板放在项目根目录的templates文件夹下:
      class BagsListView(generic.ListView):
          model = Bag
          template_name = 'bag_list.html'
      
    • 如果模板放在对应app的templates/[app名称]/下(比如app叫bags,路径是bags/templates/bags/bag_list.html):
      class BagsListView(generic.ListView):
          model = Bag
          template_name = 'bags/bag_list.html'
      
  • 未在INSTALLED_APPS中添加对应app
    检查settings.py里的INSTALLED_APPS列表,确保包含Bag模型所在的app(比如app名为bags,就添加'bags')。Django不会自动扫描未注册的app的模板目录。

  • 模板文件名/目录名拼写错误
    核对模板文件名是否为bag_list.html(注意单数bag,不是bags),目录名的拼写、大小写是否和代码中的一致。Linux/macOS系统下路径区分大小写,这点要注意。

  • TEMPLATES配置中的DIRS未正确设置
    如果你的模板放在项目根目录的templates文件夹下,需要确保settings.py的TEMPLATES配置里包含该路径:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [BASE_DIR / 'templates'],  # 确保这一行存在
            'APP_DIRS': True,
            'OPTIONS': {
                # ...其他配置
            },
        },
    ]
    
  • 查看Django的调试信息
    开启DEBUG = True后,Django的错误页面会显示它尝试查找的所有模板路径。你可以根据这些路径,把模板放到正确的位置,或者修正template_name的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:04:56