Как разделить шаблон для данной ссылки для разбивки на страницы :

#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 .