*之后的_reverse_with_prefix()参数必须是可迭代的,而不是int

阿努帕姆

reverse过去曾多次使用Django ,但今天却收到此错误,似乎调试起来还不够直观:

TypeError: _reverse_with_prefix() argument after * must be an iterable, not int

这是我使用它的视图:

from django.urls import reverse

...
...
def show_scores_url(self, obj):
    scores_url = reverse('get_scores', args=(obj.pk))
    return format_html('<a href="' + scores_url + '">Scores</a>')

...
...
阿努帕姆

注释中所述,在args元组的末尾添加逗号可解决此问题。

scores_url = reverse('get_scores', args=(obj.pk,))

(如该SO答案中所述,单项元组需要用逗号分隔以消除定义元组或用括号括起来的表达式的歧义)

或者,如docs中所述,使用列表可以很好地工作:

scores_url = reverse('get_scores', args=[obj.pk])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python线程错误-必须是可迭代的,而不是int

熊猫drop_duplicates-TypeError:*之后的类型对象参数必须是序列,而不是映射

TypeError:**之后的jsonify()参数必须是映射,而不是使用Flask返回JSON的列表

int()函数参数必须是字符串或数字,而不是“元组”

为什么解压缩此地图对象的打印内容“必须是可迭代的,而不是地图”?

**之后的MetaSerialisable对象参数必须是映射,而不是unicode

'int'对象不是可迭代的python暴力密码

*之后的/ polls / 1 / vote / _reverse_with_prefix()参数处的Django TypeError必须是可迭代的,而不是int

*之后的add()参数必须是可迭代的,而不是int Pygame

*之后的参数必须是可迭代的,而不是int

Django rest框架`TypeError:**之后的类型对象参数必须是一个映射,而不是被抛出的int`

类型错误:Int对象不是可迭代错误[For循环]

TypeError:“ int”对象不是可迭代的Python读取文件

int对象不是可迭代的python

*之后没有通过render()参数传递的参数必须是可迭代的,而不是pygame.Surface

*之后的add()参数必须是序列,而不是设置

MysqlDB调用TypeError:'int'对象不是可迭代的python

所谓的“可迭代”不是

类型错误:super() 参数 1 必须是类型,而不是 int (Python)

int 不是可迭代的 python

类型错误:* 后的 start() 参数必须是可迭代的,而不是 int

“* 之后的浮动对象参数必须是可迭代的,而不是浮动的”不知道我做错了什么

线程 thread-2 中的异常,TypeError:* 之后的 clickc() 参数必须是可迭代的,而不是 bool

类型错误:write() 参数必须是 str,而不是 int 问题

在 KERAS 中检索“int”对象不是可迭代错误的问题

“int”类型的参数不需要可迭代的帮助

“int”对象不是可迭代的错误?怎么修?

获取'int'对象不是可迭代的错误

TypeError:'int'对象不是可迭代的Python?