Наследование шаблонов Django: повторяющиеся представления

У меня есть представление под названием 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, который заменяет блок в родительском шаблоне другим содержимым. Как отобразить этот контент с использованием одного и того же представления, но с разными шаблонами, без необходимости создания нескольких представлений, имеющих один и тот же набор запросов и другое имя-шаблона. Я считаю, что есть способ сделать это по принципу "СУХОЙ"

Например, я бы создал новый вид

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))

1 ответ

Вы не говорите, как вы определяете, какой шаблон должен отображаться. Но если предположить, что он основан на параметре из URL, вы можете определить get_template_namesметод на ваш взгляд.

Этот метод может получить доступ к self.kwargs, self.request и т. Д., А затем вернуть список, содержащий имя используемого шаблона. (Обратите внимание, что это должен быть список, даже если список содержит только один элемент.)

Другие вопросы по тегам