В подробном представлении списка добавьте кнопку для перехода к предыдущему и следующему элементам списка, но оставаясь в подробном представлении
У меня есть список элементов, по которому я выполняю итерации с помощью 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.