首页 > 解决方案 > 如何根据 django DetailView 中的条件渲染模板

问题描述

我尝试过覆盖 get_templates_name()。但这并没有帮助我。

def get_template_names(self):
    theme = Themes.objects.filter(theme_creator=self.request.user)
    for t in theme:
        if t.technology_theme == True:
            return ["landing/preview/preview1.html/"]       
        elif t.default_theme == True:
            return  ["landing/categories/technology/technology1.html/"]

标签: django

解决方案


在 get_object() 或 get_context_data() 中,您可以像这样定义模板名称:

def get_context_data(self, **kwargs):
    context = super(YourView, self).get_context_data(**kwargs)
    self.template_name = 'your_template.html'
    return context

推荐阅读