Путаница в отношении сигнатуры метода django.shortcuts.render () в 1.10

Заметки о выпуске Django 1.10 ( https://docs.djangoproject.com/en/1.10/releases/1.10/#features-removed-in-1-10 ) говорят:

  • Параметры словаря и context_instance для следующих функций удаляются:
    • django.shortcuts.render()

Однако документация для render() в 1.10 ( https://docs.djangoproject.com/en/1.10/topics/http/shortcuts/#render ) по-прежнему отображает context как аргумент dictionary типов:

контекст

Словарь значений для добавления в контекст шаблона. По умолчанию это пустой словарь. Если значение в словаре является вызываемым, представление вызовет его непосредственно перед визуализацией шаблона.


Мой вопрос, честно говоря, что дает? Обычно это был бы академический вопрос, но следующий код:

 def index(request): context = RequestContext(request, {}) return render(request, 'maintenance/maintenance.html', context) 

дает эту ошибку:

 TypeError: dict expected at most 1 arguments, got 3 

и это было лучшее из того, что я мог бы найти в отношении проблемы. Следует также отметить, что эта ошибка появилась после обновления Django с 1,8 до 1.10.

Вы вводите в заблуждение context и context_instance , которые являются двумя отдельными аргументами. Аргумент context_instance был удален в Django 1.10, но context остается.

Как говорят документы, context должен быть словарем ценностей. Вы получаете ошибку, потому что вы передаете экземпляр RequestContext вместо словаря. Вы можете исправить свой пример, изменив его на:

 def index(request): context = {} return render(request, 'maintenance/maintenance.html', context)