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

DRF实现HTML转PDF遇问题,get_template异常导致返回None

排查Django get_template生成PDF异常的解决步骤

以下是针对你遇到的get_template函数异常、导致PDF生成失败返回None的问题,逐一排查的解决方法:

  • 检查模板路径配置
    确认Django项目的settings.py中TEMPLATES配置正确:

    • 若模板放在项目根目录的templates文件夹下,需确保DIRS包含该路径;
    • 若模板放在某个APP的templates文件夹下,需开启APP_DIRS: True,这样Django会自动扫描各APP下的模板目录。
      示例配置:
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [BASE_DIR / 'templates'],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    
  • 确认模板文件的路径写法

    • 如果模板在APP的templates目录下,调用get_template时需要加上APP名称前缀,比如APP名为invoice_app,则路径应为invoice_app/invoice.html;
    • 核对文件名拼写,注意Linux系统下文件名区分大小写,确保和代码中的写法完全一致。
  • 打印完整异常栈定位问题
    当前代码仅打印简单错误信息,建议修改异常处理逻辑,输出完整的异常栈,以便精准定位问题:

    except Exception as e:
        import traceback
        traceback.print_exc()
        print('ERROR', e)
    

    这样能看到是模板文件不存在、模板语法错误还是其他加载问题。

  • 排查模板语法错误
    即使路径正确,模板内的语法错误(比如标签未闭合、无效变量引用)也会在template.render()时抛出异常,通过完整异常栈可以直接看到错误所在的行号和具体原因,针对性修复即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:50:27