web-dev-qa-db-ja.com

TypeError:Django views関数で非反復可能なintオブジェクトをアンパックできません

URL.py、views.py、およびHTMLページのコードは次のとおりです。ただし、次のエラーが返されます:TypeError:non-iterable intオブジェクトをアンパックできません。

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)

ただし、前述したように、上記のエラーが返されます。

誰かが私が間違っていることを説明できますか

6
jeff

.filter(..)または.get(..)呼び出しでパラメーターの名前を指定する必要があります。

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

   return render(request, template, context)

また、変数の名前を別のものに変更することを提案します(したがって、urls.pyおよびviews.py)、idは組み込み関数であり、ローカル変数がこの組み込み関数を「非表示」にしているため。

6