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

Django Reverse路径匹配报错及Model实例配置读取问题求助

问题原因分析

你遇到的报错和配置不生效问题来自两处核心错误:

  1. 模板反向解析路由时没有传递必填的pk参数,直接触发Reverse for '' with arguments '('',)' not found报错
  2. 视图层错误把Model类当成Form类使用,多余的实例封装导致无法正常读取字段值

解决方案

1. 修复模板reportsHome.html的路由参数

你的printReports路由要求必须传入int类型的reports_pk参数,模板循环输出时要把当前实例的pk传入url标签:

{% for x in model %}
    <a href="{% url 'printReports' x.pk %}" class="list-group-item list-group-item-action" >{{ x.Complex }} Reports</a>
{% endfor %}

2. 修复printReports视图的实例读取逻辑

get_object_or_404返回的本身就是SettingsClass的Model实例,不需要再套一层Form/Model初始化,直接读取实例字段即可:

def printReports(request , reports_pk):
    # 直接获取目标实例,无需额外封装
    setting_instance = get_object_or_404(SettingsClass , pk=reports_pk)
    complexName = setting_instance.Complex

    # 后续判断直接用实例读取字段即可
    if setting_instance.Trial_balance_Year_to_date == True:
        # 原有PDF生成逻辑保留即可,注意要提前初始化你代码里用到的arr_trbYTD、xCreditTotal等全局变量,避免未定义报错

额外优化建议

  • 原生SQL执行建议替换为Django ORM操作,或者用Django封装的connection.cursor()执行,避免自行维护数据库连接的风险和SQL注入问题
  • 模板里遍历xDebitTotal、xCreditTotal的逻辑可以优化,如果这两个是单值,不需要用for循环包裹直接输出即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:45:01