Джанго рендер () в 2.X - PullRequest
       72

Джанго рендер () в 2.X

1 голос
/ 04 ноября 2019

Я столкнулся с этой проблемой при попытке получить данные POST.

В Django 1.X я структурировал свои представления следующим образом:

def view_name(request, template_name='template.html'):
     variable1 = data
     variable2 = moreData         

     return render_to_response(template_name, locals(), context_instance=RequestContext(request))

Теперь я вижу, что render_to_response () устарела, но я не уверен, как переносить кодсо всеми местными () звонками.

Нужно ли преобразовывать все мои представления, создавая dict со всеми желаемыми переменными?

Есть ли другой способ перенести это, чтобы сохранить включение localals ()?

Спасибо!

1 Ответ

3 голосов
/ 04 ноября 2019

Вы можете вызвать это с помощью:

def view_name(request, template_name='template.html'):
     variable1 = data
     variable2 = moreData
# … return render(request, template_name, locals())

При этом, пожалуйста, не используйте locals(). Это делает очень неясным, что именно вы передаете шаблону. Кроме того, вы часто будете передавать шаблону больше, чем хотите. Наконец, большинство IDE скажут, что переменная не используется, и поэтому вы можете удалить ее, но на самом деле она используется в шаблоне.

...