В подробном представлении списка добавьте кнопку для перехода к предыдущему и следующему элементам списка, но оставаясь в подробном представлении

У меня есть список элементов, по которому я выполняю итерации с помощью for. Для каждого элемента у меня есть детальное представление с описанием, названием и т.д. Я хочу добавить 3 кнопки. Средняя из них возвращает меня к списку. Я хочу, чтобы левая кнопка переводила меня к предыдущему элементу списка, пока я остаюсь в детальном представлении, а правая - к следующему элементу списка. Если нет ни предыдущего, ни следующего элемента, кнопки не должны быть видны.

Вид списка Кнопки детального просмотра

Класс ListView:

class PortfolioListView(ListView):
template_name = 'portfolio/portfolio.html'
model = PortfolioLogo
context_object_name = 'all_portfolio_logos'
paginate_by = 8

Класс DetailView:

class PortfolioDetailView(DetailView):
template_name = 'portfolio/detail_portfolio_logo.html'
model = PortfolioLogo

def get_context_data(self, **kwargs):
    data = super(PortfolioDetailView, self).get_context_data(**kwargs)
    logo_ids = PortfolioLogo.objects.all().values_list('pk', flat=True)
    data['logo_ids'] = logo_ids

    return data

html:

<a class="btn btn-outline-primary float-start" href="{% url 'portfolio' %}"
role="button" data-bs-toggle="tooltip" title="Previous logo!">❮</a>
<a class="btn btn-outline-primary float-start" href="{% url 'portfolio' %}"
role="button">View all</a>
<a class="btn btn-outline-primary float-start" href="{% url 'portfolio' %}"
role="button" data-bs-toggle="tooltip" title="Next logo!">❯</a>

Я чувствую, что я близок, но не могу понять этого.

Заранее спасибо.

Я нашел решение:

file_ids = list(ProjectFile.objects.filter(project=self.kwargs.get('project_id')).values_list('pk', flat=True))

И мне также пришлось добавить project_id в url.

Вернуться на верх