对于其中一个应用程序,我在使用Admin面板的Django 1.9.x项目中重载了“删除所选对象”方法。为此,我有一个类似的代码:
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 / site-packages / django / shortcuts.py:45:ReaddInDjango110Warning:不推荐使用render_to_string的context_instance参数。使用采用=)
我试图找到一些资源来解释如何根据版本1.10.x“更新”语法,但我一直无法做到。
类似的问题已经被问到here但是由于OP明确地调用了render_to_string
而我没有这个问题,所以它略有不同。
如何更新上述调用以使警告消失?
答案 0 :(得分:2)
是的,修复它的“正确”方法是更新它。根据{{3}}
自1.8版以来已弃用: 不推荐使用context_instance参数。使用render()函数,它总是使RequestContext可用。
如果您确实要取消此警告(非常不推荐),则可以使用SILENCE_SYSTEM_CHECK
设置。