我正在将项目升级到django 1.10,并试图更改以下模板标签(简化)
@register.simple_tag(takes_context=True)
def render_svg(context, svg_template_file_name, *args, **kwargs):
svg_string = render_to_string(svg_template_file_name, context, request=context.request)
这不再起作用,因为context
通过的是RenderContext
,其中文档状态:
如果您要传递上下文_instance中的上下文,请改用上下文参数中的dict。如果您通过requestContext,请在请求参数中分别传递请求。
我已经在做,仍然想利用context
参数到render_to_string
...
那么如何从RenderContext
获得可用的词典?
RenderContext
的基类BaseContext
具有一个称为 flatten
的函数,该函数将在上下文对象中将词典数字列入词典并返回单个词典
render_to_string(svg_template_file_name, context, request=context.request)
需要更改为
render_to_string(svg_template_file_name, context.flatten(), request=context.request)