Для одного из приложений я перегружаю метод «удалить выбранные объекты» в проекте Django 1.9.x, который использует панель администратора. Для этого у меня есть код, подобный этому:RemovedInDjango110Warning: аргумент context_instance для render_to_string устарел
from django.contrib.admin import helpers
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext
class MAdmin(admin.ModelAdmin):
actions = ['delete_selected']
def delete_selected(self, request, queryset):
if 'apply' in request.POST:
# User has confirmed deletion of items
return HttpResponseRedirect(request.get_full_path())
else:
# User must confirm if they wish to delete selected items
return render_to_response('admin/confirm_delete.html', { 'queryset': queryset, 'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME }, context_instance=RequestContext(request))
Последняя строка производит следующее предупреждение в консоли:
.../virtualenv/Lib/python2.7/сайт-пакеты /django/shortcuts.py:45: RemovedInDjango110Warning: Аргумент context_instance для render_to_string устарел. using = using)
Я попытался найти какой-то ресурс, объясняющий, как «обновить» синтаксис в соответствии с версией 1.10.x, но мне не удалось.
Схожие вопросы уже заданы here, но это немного отличается, так как OP вызывает render_to_string
явно, а я нет.
Как обновить вызов выше, чтобы предупреждение исчезло?
Обратите внимание, что это предупреждение Python, а не проверка системы Django. Чтобы добавить фильтр и игнорировать предупреждение, вам необходимо использовать [модуль предупреждений] (https://docs.python.org/3/library/warnings.html#the-warnings-filter). – knbk
Если это действительно неизбежно, я предпочитаю не останавливать оповещения, так как это в основном устраняет проблему. Я бы попробовал и вернусь. – nKn
Корректно, подавляя эти ошибки, заставляя поддерживать цикл обновления кошмаром. – karthikr