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

Django客户访问计算列表时错误渲染管理员模板问题排查

问题根因

Django 通用类视图ListView会默认根据绑定的model自动生成模板路径,规则为<应用名>/<模型名小写>_list.html。你的两个列表视图都绑定了Calculation模型,所以默认都会匹配cycle/calculation_list.html(也就是管理员的模板),才会出现数据正确但模板渲染错误的问题。

修复方案

1. 手动指定客户视图的模板路径

在CalculationsByUserListView类中显式添加template_name属性,指定为客户专属模板即可,修改后的视图代码如下:

#Users' view function
class CalculationsByUserListView(LoginRequiredMixin, generic.ListView):
    model = Calculation
    paginate_by = 10
    # 新增这一行,手动指定模板
    template_name = 'cycle/calculations_user.html'
    
    def get_queryset(self):
       return Calculation.objects.filter(userid=self.request.user)

这一步修改完成后,访问mycalcs路由就会正确渲染客户模板,测试用例可以直接通过,不需要改动原有URL配置,也就不会出现NoReverseMatch错误。

2. 若已修改过URL导致NoReverseMatch,排查以下两点

  • 检查urls.py中对应路由的name属性是否和你代码中reverse、模板{% url %}标签调用的名称完全一致
  • 保持mycalcs路由的name='mycalcs'不变即可匹配现有测试和业务代码的路由调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:09:03