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

Django模板URL无法识别全局变量 反向生成更新视图URL报错

问题根因

Django模板默认无法直接访问Python层面定义的全局变量,你只在get_queryset方法里调用了val(),但没有把这个值传递到模板上下文,所以模板读取到的val是空值,触发参数缺失报错。

修复步骤

  1. 在你的ListView类中重写get_context_data方法,把Header主键值注入模板上下文:
class DeafttlogListView(LoginRequiredMixin, PermissionRequiredMixin, ListView):
    permission_required = 'fttlapp.view_deafttlog'
    model = Deafttlog
    paginate_by = 10

    def get_queryset(self):
        queryset = Deafttlog.objects.filter(dea_fttlcode=val())
        print('Uscita Queryset Lista Deafttlog' )
        print(val())
        return queryset
    
    # 新增以下方法传递上下文变量
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['header_pk'] = val()
        return context
  1. 修改模板代码,使用上下文传递的变量生成URL:
<a class="btn btn-outline-info" href="{% url 'headfttlog_update' pk=header_pk %}">Back to FTTL header</a>

额外优化建议

不建议用全局变量存储单用户维度的主键值,多用户并发访问时会出现数据串扰问题,推荐将Header主键参数放到ListView的请求URL中,从请求参数里取值会更安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:42:01