我有一个名为ListAEQ的视图:
class ListAEQ(MixinView, ListView):
template_name = 'allometric/aeq_list.html'
model = Equation
def get_queryset(self):
return (Equation.objects.filter(owner=self.request.user))
我想使用不同的模板多次使用此视图中的查询集。例如,我有一个扩展aeq_list.html的模板,它用不同的内容替换父模板中的块。如何使用相同视图但不同模板呈现此内容,而无需创建具有相同查询集和不同tempate_name的多个视图。我相信根据原则" DRY"
有一种方法可以做到这一点例如,我会创建一个新视图
class ListAEQindia(MixinView, ListView):
template_name = 'allometric/aeq_list_india.html'
model = Equation
def get_queryset(self):
return (Equation.objects.filter(owner=self.request.user))
答案 0 :(得分:1)
您没有说明如何确定要渲染的模板。但假设它基于URL中的参数,您可以在视图中定义get_template_names
方法。
该方法可以访问self.kwargs和self.request等,然后返回包含要使用的模板名称的列表。 (请注意,它必须是一个列表,即使列表只包含一个项目。)