Django render_to_response () с указанием имен параметров - PullRequest
2 голосов
/ 11 мая 2011

Я не уверен на 100%, является ли это вопросом Django или Python, но я думаю, что это как-то связано с Django.

Поскольку я новичок в мире 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 () получил неожиданный аргумент ключевого слова 'template'".

Для того чтобы 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 () дает мне ошибку?

Ответы [ 2 ]

3 голосов
/ 11 мая 2011

render_to_response - это обертка вокруг HttpResponse. Однако HttpResponse принимает обработанный контент, а не имя шаблона. Следовательно, render_to_response сначала вызывает render_to_string, а параметр в render_to_string равен template_name , а не template.

Однако префикс имен параметров не обязательно является «хорошей практикой». Хорошая практика состоит в том, чтобы следовать соглашению, и соглашение не должно использовать имена параметров в render_to_response, за исключением context_instance.

2 голосов
/ 11 мая 2011

Имя параметра template_name, а не template.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...