как я могу использовать object_list в django listview в нескольких шаблонах? - PullRequest
0 голосов
/ 09 мая 2020
class PostListView(ListView):
model = Post
def get_queryset(self):
    return Post.objects.filter(published_date__lte = timezone.now()).order_by('-published_date')

Я хочу использовать object_list в этом списке в нескольких шаблонах. У меня есть 4 шаблона определенной категории, в которых я хочу использовать этот список и фильтровать список в соответствии с шаблоном. Так что можно ли использовать этот список более чем в одном шаблоне

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

вы можете обойти метод получения данных контекста в других представлениях и передать object_list в качестве контекста.

def get_context_data(self, **kwargs):
    context = super(YourSuperView, self).get_context_data(**kwargs)
    context['object_list'] = Post.objects.filter(published_date__lte = timezone.now()).order_by('-published_date')
    return context
0 голосов
/ 09 мая 2020

Вам необходимо реализовать метод get_template_names(), а затем вы можете выбрать значение template_name

Пример:

get_template_names():
    if X == 1:
        return 'template1.html'
    else:
        return 'template2.html'
...