はじめに
Djangoからurls.pyで引数を指定してViewをコールした時に、
発生した「got an unexpected keyword argumエラー」を駆逐したので調査報告します。
この世から、エラーを1件も残らず駆逐してやる!!
目次
#1. やりたいこと
urls.pyで引数を指定してViewをコールしたい。
#2. 発生したエラー
urls.pyのpath関数とviews.pyのviews関数に引数を指定したら
「got an unexpected keyword argum」エラーが発生した。
#3. 原因
urls.pyの「実引数名」とviews.pyの「仮引数名」が不一致なのが原因だった。
実引数名と仮引数名を一致させればgot an unexpected keyword argumエラーを駆逐できる。
urls.py
urlpatterns = [
path('<int:id>/', detail, name='detail'),
]
views.py
def detail(request,no):
snippet = get_object_or_404(Snippet, pk=no)
return render(request, 'snippets/detail.html',{'snippet': snippet})
]
#4. 解決策
どちらも「id」に修正し、urls.pyの実引数名とviews.pyの仮引数名を一致させて駆逐した。
urls.py
urlpatterns = [
path('<int:id>/', detail, name='detail'),
]
views.py
def detail(request,id):
snippet = get_object_or_404(Snippet, pk=id)
return render(request, 'snippets/detail.html',{'snippet': snippet})
]