Есть ли способ разбивать страницы на отдельные элементы шаблона? - PullRequest
0 голосов
/ 08 марта 2019

Проблема:

В настоящее время у меня есть шаблон с несколькими вложенными элементами div, который будет содержать разные элементы списка. В настоящее время, если я нажимаю кнопку «Далее» на одном из элементов, полная страница перезагружается, и теперь все элементы или на следующей или предыдущей странице.

Код:

Основной код шаблона в div

      {% include "users/activities.html" with activities=action1 table_title='Signups' action_verb='action1' %}
      {% include "users/activities.html" with activities=action2 table_title='Actions' %}
      {% include "users/activities.html" with activities=action3 table_title='Actions 2'%}

Код шаблона активности с нумерацией страниц:

    {% if activities.has_other_pages %}
    <div class="paginationWrap">
      <ul class="pagination">
        {% if activities.has_previous %}
          <li><a href="?page={{ activities.previous_page_number }}">&laquo;</a></li>
        {% else %}
          <li class="disabled"><span>&laquo;</span></li>
        {% endif %}
        {% for i in activities.paginator.page_range %}
          {% if activities.number == i %}
            <li class="active"><span> {{ i }} </span></li>
          {% else %}
            <li><a href="?page={{ i }}">{{ i }}</a></li>
          {% endif %}
        {% endfor %}
        {% if activities.has_next %}
          <li><a href="?page={{ activities.next_page_number }}">&raquo;</a></li>
        {% else %}
          <li class="disabled"><span>&raquo;</span></li>
        {% endif %}
      </ul>
    </div>
    {% endif %}

Цель:

Возможность щелкнуть в одном элементе div, а не в том, чтобы все элементы div возвращали изменение страницы.

1 Ответ

0 голосов
/ 08 марта 2019

Если вы не хотите загружать всю страницу, разработайте параметр API с разбивкой на страницы, а затем нажмите его, используя ajax-запрос, чтобы обновить ваши данные, используя ajax-запрос.

#python
class ActivitiesView(APIView):
    def get(self, request, format=None):
        activity_details = Activities.objects.filter(user=request.user) # or any other query
        paginator = Paginator()
        response = paginator.generate_response(activity_details, ActivitySerializer, request)
        return response


   #js
       $.ajax({
            type: "GET",
            url: "{% url ur_url %}",
            data: "page="+pageNum,
            async: false,
            dataType: 'json',
            success: function(data){
                el = $('#friends-data');
                update_div(data.json);
            }
        });

Вы также можете проверить это DRG PAGINATION

На этой странице также обсуждается с использованием представлений django

...