首页 > 解决方案 > 视图中的 TypeError:字段需要一个数字,但得到了 SimpleLazyObject

问题描述

我升级到 django v3.1 并突然收到此错误:

字段 'id' 需要一个数字,但得到 <SimpleLazyObject: '23'>。

失败的代码行是这样的:

my_obj = get_object_or_404(MyModel, pk=kwargs.get('pk'))

有什么想法我可能做错了吗?

谢谢!

标签: djangodjango-viewsdjango-3.1

解决方案


经过一番谷歌搜索后,我发现了 Aaron O. Ellis 的这篇文章

诀窍不是kwargs直接使用,而是从视图类中使用self

my_obj = get_object_or_404(MyModel, pk=self.kwargs.get('pk'))

希望这对其他人也有帮助。


推荐阅读