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)
ただし、前述したように、上記のエラーが返されます。
誰かが私が間違っていることを説明できますか
.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
は組み込み関数であり、ローカル変数がこの組み込み関数を「非表示」にしているため。