2011-05-11 25 views
2

これはDjangoかPythonのどちらの質問か分かりませんが、Djangoと何か関係があると思います。パラメータ名が指定されたDjango render_to_response()

私はDjangoの世界に慣れていないので、関数呼び出し時に明示的にパラメータ名を設定するという良い習慣を確立しようとしています。 render_to_responseの場合

()、私は次のようなものだろう:

render_to_response(template='lend_borrow/MyAccount_mod.html', 
        dictionary={'user_form': user_form, 'profile_form': profile_form, 'profile': profile_obj}, 
        context_instance=RequestContext(request)) 

をしかし、それを、私は、エラーが発生しました「(render_to_string)予期しないキーワード引数 『テンプレート』を得ました」。なぜ呼び出しの最初のアプローチは次のとおりです。そのrender_to_responseためには

()私の見解機能で動作するように、私は

render_to_response('lend_borrow/MyAccount_mod.html', 
        {'user_form': user_form, 'profile_form': profile_form, 'profile': profile_obj}, 
        RequestContext(request)) 

OR

render_to_response('lend_borrow/MyAccount_mod.html', 
        {'user_form': user_form, 'profile_form': profile_form, 'profile': profile_obj}, 
        context_instance=RequestContext(request)) 

への質問を、それを変更しなければなりませんでしたrender_to_response()エラーが発生しましたか?

答えて

3

は、HttpResponseのラッパーです。ただし、HttpResponseはレンダリングされたコンテンツを取得し、テンプレート名は取得しません。したがって、render_to_responseは、最初にrender_to_stringを呼び出し、render_to_stringのパラメータはtemplate_nameではなく、templateです。

ただし、パラメータ名の接頭辞は必ずしも「良い習慣」であるとは限りません。良い習慣は、コンベンションに従い、コンベンションはcontext_instanceを除いて、render_to_responseにパラメータ名を使用しないことです。

+0

はい、「template_name」は機能します。ありがとう。 render_to_response(template [、dictionary] [、context_instance] [、mimetype]) 上記はDjangoの公式ドキュメントのrender_to_responseの署名です。私はそれが "テンプレート"の代わりに "テンプレート名"を読むべきだと思う – tamakisquare

+0

私は、プレフィックスパラメータ名のあなたのコメントに同意します。パラメータを値と照合する際に暗黙的なインデックスに頼ることになると、私はより慎重になる傾向があります。ほとんどの場合、パラメータ名の前に接頭辞を付けると、コードを読みやすく理解しやすくなります。しかし、あなたのように、大会が始まるとき、私はこの原則を緩和したいと思います。 – tamakisquare

2

パラメータ名はtemplate_nameであり、templateではありません。

関連する問題