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

Django报错TypeError: 'set' object is not reversible问题求助

解决Django中TypeError: 'set' object is not reversible问题

可能的触发原因(即使你模板里用了[])

  • 视图调用reverse()时,args参数传了集合(比如args={1}),而非列表/元组
  • 模板中{% url %}标签引用的变量是集合类型(比如视图往模板传了{'task_ids': {1,2}},模板直接用{% url 'add_task' task_ids %})
  • URL配置或视图处理参数时,不小心把参数转换成了集合
  • 手滑写错语法:比如模板里某行url调用没注意写成了{% url 'add_task' {1} %},而非{% url 'add_task' 1 %}或{% url 'add_task' [1] %}

排查与解决步骤

  1. 查看报错堆栈定位具体代码行:确认是模板里的url标签触发,还是视图里的reverse函数触发
  2. 检查对应位置的参数类型:
    • 视图里:把reverse()的args改成列表([1,2])或元组((1,2)),如果参数是集合,用list()转成列表再传入
    • 模板里:如果是变量参数,先在视图里把集合转成列表再传给模板;或者自定义模板过滤器实现集合转列表后再使用
  3. 逐行检查所有涉及url反转的代码,确保没有隐性的集合参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:52:07