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

Django ListView模板不存在报错:自定义模板未生效问题求助

问题原因与解决办法

Django的ListView有默认的模板查找逻辑:它会自动去 <app名称>/<模型小写名称>_list.html 路径找模板。你的模型是Portfolio,所以默认会找portfolio/portfolio_list.html,但你创建的是content_list.html,这就是模板找不到的直接原因。

给你两种解决方式:

方式一:调整模板文件名

直接把content_list.html重命名为portfolio_list.html,并放在templates/portfolio/目录下(确认你的app名称是portfolio,且模板目录结构符合Django的查找规则)。

方式二:在ListView中指定模板路径

如果不想改文件名,就在你的ListView类里显式设置template_name属性,指定使用你已创建的模板:

from django.views.generic import ListView
from .models import Portfolio

class PortfolioListView(ListView):
    model = Portfolio
    # 根据你的实际路径填写,比如模板在templates根目录就写'content_list.html',在app子目录就写'your_app/content_list.html'
    template_name = 'content_list.html'
    # 可选:如果想自定义上下文里的变量名,比如把默认的object_list改成portfolios,可以加这行
    # context_object_name = 'portfolios'

另外提下数据库数据未加载的可能点:

  • 确认已经执行过python manage.py makemigrations和python manage.py migrate,把Portfolio模型同步到PostgreSQL
  • 检查数据库里是否真的有Portfolio的数据记录
  • 确认ListView没有添加额外的过滤条件(比如queryset属性)导致无数据返回

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:57:08