Наследование шаблонов 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 и т. Д., А затем вернуть список, содержащий имя используемого шаблона. (Обратите внимание, что это должен быть список, даже если список содержит только один элемент.)