0

我有一个名为 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))
4

1 回答 1

1

您没有说明如何确定要呈现哪个模板。但假设它基于 URL 中的参数,您可以get_template_names在视图中定义该方法。

该方法可以访问 self.kwargs 和 self.request 等,然后返回一个包含要使用的模板名称的列表。(请注意,它必须是一个列表,即使该列表仅包含一项。)

于 2014-06-11T19:00:35.273 回答