覆盖Django渲染方法

时间:2017-07-07 13:30:08

标签: django templates render

使用以下渲染器...

from django.shortcuts import render
...
return render(request, 'template.html', {'context':context,})

是否可以覆盖render classe的方法,以便在某些情况下我可以自己解释模板标签,例如,如果我找到包含某种格式的标签,例如...

{% url 'website' page.slug %}

我可以指出......

/theme/theme-1/page.html

/theme/theme-2/page.html

取决于绝对的设置。

1 个答案:

答案 0 :(得分:1)

Trace方法只是以下的快捷方式:

render

因此,尝试更改url标记的行为不是正确的地方。

对于您提供的示例,网站看起来应该是包含template = loader.get_template(''template.html') context = { ..., } return HttpResponse(template.render(context, request)) theme-1的变量。然后,您可以将变量传递给url标记,而不是字符串theme-2

'website'

如果无法做到这一点,您可以创建一个custom template tag {% url website page.slug %} ,根据您的设置返回正确的网址。