TypeError: cannot unpack non-iterable int object in Django views function

TypeError: cannot unpack non-iterable int object in Django views function

以下是我在 URL.py、views.py 和 HTML 页面中的代码。然而,它 returns 我的错误:TypeError: cannot unpack non-iterable int object.

urlpatterns = [
    path('', views.blogs_home, name='blogs'),
    path('<int:id>', views.single_blog, name='detailed_view'),

]

我正在尝试在列表视图中捕获帖子博客的 ID,以使用 ID 查询从数据库中获取博客对象。以下是我的查看代码。

def single_blog(request,id):
   blog_single = Blogs.objects.get(id)
   context = {'blog_single': blog_single}
   template = 'blog_home.html'

   return render(request, template, context)

然而,正如我提到的,returns 上面的错误。

谁能解释一下我做错了什么

您应该在 .filter(…) [Django-doc] or .get(…) [Django-doc] 调用中指定参数名称:

def single_blog(request, id):
   blog_single = Blogs.objects.get(<b>id=id</b>)
   context = {'blog_single': blog_single}
   template = 'blog_home.html'

   return render(request, template, context)

我还建议将您的变量重命名为其他名称(因此在 urls.pyviews.py 中),因为 id 是一个内置函数,现在局部变量是“隐藏”这个内置函数。