【发布时间】:2012-09-04 02:31:48
【问题描述】:
我需要在views.py 中添加到TemplateView html {%extends some_base.html%} 的输出。 我不能直接使用 html,因为 template_name 总是不同的,我不想将 {%extends..%} 添加到每个 template.html 文件中。 我想做这样的事情:
class PageView(TemplateView):
def get_context_data(self, **kwargs):
object = PageModel.objects.get(view_base__slug=kwargs.get('slug'))
self.template_name = object.template_name
self.base='base.html'
from django.template.loader import render_to_string
#just example, it's not working
rendered = render_to_string(self.template_name)
rendered= '{% extends' + self.base + '%} '+ rendered
###
return locals()
但它不起作用。甚至更多 - 我想保存所有正在传递给模板的变量。
【问题讨论】:
-
没有。我想将 {% extends %} 字符串添加到输出 html,我不想在模板中手动添加。
-
什么?您希望实际的 原始字符串
{% extends %}出现在您的渲染输出中吗? -
是的,这就是我想要的。我希望它由 django 处理并用于扩展 base.html
-
但这与我所说的相反! 要么 你希望原始字符串出现在渲染输出中,要么 你希望它作为模板的一部分由 Django 处理。哪个?
标签: django django-templates django-views