を得た:デコレータは()私は、Djangoのビューでこのエラーを持って予想外のキーワード引数
TypeError at /web/host/1/
decorator() got an unexpected keyword argument 'host_id'
Request Method: GET
Request URL: http://127.0.0.1:8000/web/host/1/edit
Django Version: 1.10.4
Exception Type: TypeError
Exception Value:
decorator() got an unexpected keyword argument 'host_id'
とurlpatternsは以下のとおりです。
url(r'^host/(?P<host_id>[0-9]+)$', host, name='host'),
ビュー機能は次のとおりです。
@check_login
def host(request, host_id, *args, **kwargs):
h = Host()
# resultHost = h.get_host(host_id)
return render(request, 'web/host.html')
以下のcheck_login:
def check_login(f):
"""verify if user login"""
def decorator(request):
if request.session.get('user', None):
return f(request)
else:
return HttpResponseRedirect(reverse("web:login"))
return decorator
パラメータ「host_id」を指定せずにurlを使用し、host_idを指定しないでhost関数を使用すると、プログラムは完璧に動作します。
何が問題なのですか?ありがとうございました。
私は問題がデコレータ 'check_login'をどのように定義したのかと思いますデコレータコールに渡される 'host_id'の値を考慮していないことを示します。あなたの質問に 'check_login'コードを追加できますか? –
これを追加します。 –
@check_loginをhost()の上に置くと、問題は残っています。 –