#django #django-pagination
#django #django-разбивка на страницы
Вопрос:
Дана эта ссылка для разбивки на страницы в стиле Twitter в Django. Я пытаюсь реализовать то же самое в своем приложении, но не могу понять разделение шаблона. Я привожу здесь код моей HTML-страницы, для которой я хочу применить разбивку на страницы. Может кто-нибудь, пожалуйста, помочь мне, ответив на то, что я должен написать в двух шаблонах, один из которых есть entry_index.html
, а другой есть entry_index_page.html
(как указано в ссылке) в соответствии с моим HTML-кодом?
Ниже приведен мой код для HTML-страницы, для которой я применяю разбивку на страницы :
{% extends 'talks/base.html' %}
{% block content %}
<!-- .header-bottom-wrapper -->
<div class="header-bottom-wrapper">
<div class="container">
<div class="row">
<!-- Page Head -->
<div class="page-head col-lg-12">
<h2 class="page-title">Gallery</h2>
</div>
<!-- End Page Head -->
</div>
</div>
</div><!-- End of .header-bottom-wrapper -->
<!-- page-container -->
<div class="page-container container">
<!-- Gallery Filter -->
<div id="gallery-container">
<div class="row gallery-4-columns isotope clearfix">
{% for photo in pics %}
<div class="gallery-item isotope-item issues col-lg-3 col-md-3 col-sm-3 col-xs-6">
<figure>
<a class="zoom swipebox" href="{{photo.image.url}}" title="{{photo.title}}"></a>
<div class="media_container"></div>
<img src="{{photo.image.url}}" alt="{{photo.title}}" width="346px" height="200px">
</figure>
</div>
{% endfor %}
</div>
</div>
</div><!-- End of .page-container -->
{% endblock %}
Ответ №1:
В entry_index.html:
{% extends 'talks/base.html' %}
{% block content %}
<!-- .header-bottom-wrapper -->
<div class="header-bottom-wrapper">
<div class="container">
<div class="row">
<!-- Page Head -->
<div class="page-head col-lg-12">
<h2 class="page-title">Gallery</h2>
</div>
<!-- End Page Head -->
</div>
</div>
</div><!-- End of .header-bottom-wrapper -->
<!-- page-container -->
<div class="page-container container">
<!-- Gallery Filter -->
<div id="gallery-container">
<div class="row gallery-4-columns isotope clearfix">
{%include page_template %}
</div>
Вы видите, что я исключил цикл for, я заменил его на
{%include page_template %}
Поместите цикл for в entry_index_page.html .
Не забудьте определить переменную page_template, как здесь:
https://django-endless-pagination.readthedocs.io/en/latest/twitter_pagination.html#split-the-template
Вот моя попытка, когда я впервые тестировал django-endless-pagination, это простое отображение списка фотографий с кнопкой «показать еще» :
{% load el_pagination_tags %}
{% paginate photos %}
{% for photo in photos %}
<div class="well col-xs-12 col-md-8 col-md-offset-2">
<div class="row">{{ forloop.counter }}</div>
<div class="row">{{ photo.description }}</div>
<div class="row">
<div class="col-md-4">
<div class="thumbnail">
<img src="{{ photo.image.url }}" class="img-responsive">
</div>
</div>
</div>
</div>
{% endfor %}
{% show_more %}
Комментарии:
1. Попробовал это. Теперь я получаю отображение своих первых 10 (из 13) объектов, но когда я нажимаю «Показать больше», следующие 3 объекта накладываются на первые 3
2. Поскольку вы получаете следующие 3 объекта после первых 3 объектов, кажется, что разбивка на страницы работает хорошо. Пожалуйста, добавьте / удалите атрибуты класса в примере в соответствии с вашими потребностями. Для разбивки на страницы важны теги шаблонов load , paginate и show_more .