RemovedInDjango110Warning:不推荐使用render_to_string的context_instance参数

时间:2016-07-12 18:29:39

标签: python django django-templates django-admin

对于其中一个应用程序,我在使用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而我没有这个问题,所以它略有不同。

如何更新上述调用以使警告消失?

1 个答案:

答案 0 :(得分:2)

是的,修复它的“正确”方法是更新它。根据{{​​3}}

  

自1.8版以来已弃用:   不推荐使用context_instance参数。使用render()函数,它总是使RequestContext可用。

如果您确实要取消此警告(非常不推荐),则可以使用SILENCE_SYSTEM_CHECK设置。

documentation, they recommend using render()