django - 如何根据 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/"]
解决方案
在 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
推荐阅读
- database - 在 SQLite 中处理 Blob
- laravel - Laravel Auth::login 不被尊重
- java - SpringBoot 集成测试因 java.awt.HeadlessException 而失败
- python - 使用 dask 将函数转换为自定义聚合
- angular - 无法在重新加载页面上获取 /login Angular 8 - 拒绝加载图像“/favicon.ico”,因为它违反了以下内容安全策略
- excel - 如何单击 Chrome 上的按钮将值粘贴到输入框中?
- python - 从工作簿处理到另一个工作簿时更改日期格式
- python - 如何测试数据帧最后一行中的特定值(使用-1)
- java - 创建名为 'org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator#0 的 bean 时出错?
- node.js - 如何在 SailsJS 中创建(并能够更改)全局变量