2016-12-06 29 views
1

render_to_string我升級項目的Django 1.10,並試圖更改以下模板標籤(簡體)使用的RenderContext在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,其中docs狀態:

如果您在context_instance中傳遞Context,請改爲在上下文參數中傳遞一個dict。如果您傳遞RequestContext,請在請求參數中單獨傳遞請求。

這我已經在做,並且仍然想利用context參數render_to_string的...

所以,我怎麼能得到從RenderContext可用字典?

回答

1

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)