Django中HTML传递GET参数到View取值为None如何解决
问题原因
- GET查询参数的分隔符使用错误,多个参数之间必须使用
&分隔,不能使用逗号, - 查询字符串存在多余的无效空格:
?后、参数名与等号之间、等号与参数值之间的空格会被识别为参数名/值的一部分,导致实际生成的参数名为带空格的date,和后端读取的无空格参数名date不匹配,所以返回None
修复方案
直接修改HTML中a标签的href属性,调整为符合GET参数规范的写法:
<a href="{% url 'pba_defect_xls' %}?date={{ date }}&date1={{ date1 }}" class="btn btn-success" style="float:right;">Export Excel</a>
如果需要兼容参数中存在特殊字符的场景,可以额外加上Django的urlencode过滤器,写法更稳妥:
<a href="{% url 'pba_defect_xls' %}?date={{ date|urlencode }}&date1={{ date1|urlencode }}" class="btn btn-success" style="float:right;">Export Excel</a>
修改完成后重新运行,后端即可通过原有代码正常获取到date和date1的参数值,后续直接写xlwt导出Excel的逻辑即可。
内容的提问来源于stack exchange,提问作者HudsonBarroso
相关产品推荐
相关产品推荐

