google_online
@google_online
My morning begins with coffee and Twitter.

Как в django разделить двадцать постов в блоге на две страницы?

У меня есть двадцать постов в блоге и все они идут в ряд, как мне зделать чтоб на каждой странице было по 10 постов?
  • Вопрос задан
  • 640 просмотров
Пригласить эксперта
Ответы на вопрос 3
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Использовать Pagination и Common based views.
Например так:

Указать в views.py:
...
from django.views.generic import ListView
...
class RecordsListView(ListView):
    template_name = 'record_list_view.html'
    model = Record
    paginate_by = 10


и в темплейте 'record_list_view.html что-то вроде:
...
{% for record in object_list %}

    ...
{% endfor %}

    {% if is_paginated %}
        <div class="row">
            <div class="col-sm-4">
                <div class="dataTables_info" id="dynamic-table_info" role="status" aria-live="polite">
                    Показано с {{ page_obj.start_index }} по {{ page_obj.end_index }} из {{ page_obj.paginator.count }} результатов
                </div>
            </div>
            <div class="col-sm-2">
                <div class="dataTables_paginate paging_simple_numbers" id="dynamic-table_paginate">
                    <ul class="pagination">

                        {% if page_obj.has_previous %}
                        <li class="paginate_button previous" aria-controls="dynamic-table" tabindex="0">
                            <a href="{% url 'recordt_list'%}?page={{ page_obj.previous_page_number }}{{ search_data|set_search_data }}">Пред.</a>
                        </li>
                        {% else %}
                        <li class="paginate_button disabled previous" aria-controls="dynamic-table" tabindex="0">
                            <a href="{% url 'ticket_list'%}">Пред.</a>
                        </li>
                        {% endif %}

                        <li class="paginate_button active" aria-controls="dynamic-table" tabindex="0">
                            <a href="{% url record_list'%}?page={{page_obj.number}}{{ search_data|set_search_data }}">{{ page_obj.number }}</a>
                        </li>

                        {% if page_obj.has_next %}
                        <li class="paginate_button next" aria-controls="dynamic-table" tabindex="0">
                            <a href="{% url 'rtecord_list'%}?page={{ page_obj.next_page_number }}{{ search_data|set_search_data }}">След.</a>
                        </li>
                        {% else %}
                        <li class="paginate_button next disabled" aria-controls="dynamic-table" tabindex="0">
                            <a href="{% url 'record_list'%}?page={{ page_obj.paginator.num_pages }}">След.</a>
                        </li>
                        {% endif %}

                    </ul>
                </div>
            </div>
        </div>
    {% endif %}
...
Ответ написан
Автор, уважаемые пользователи Denis Sh , Евгений Бороденков , Владимир дали верный способ и причем каждый по своему пониманию. но из вашего вопроса ничего не понятно как вы хотите все это разделить, зачем. вобщем, говоря языком медицины, чтобы поставить диагноз и дать рецепт на лечение нужно собственно хотябы понимать чем пациент болен. а ваша болезнь звучит как "вот, доктор, у меня справа болит. дайте мне таблетку чтобы все"
Ответ написан
Комментировать
@Deq56
Python dev, JS, CSS, Asterisk, Mikrotik
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы