Django 005: Хуудаслалт хэрхэн хийх вэ?

Zorig
limitx
Published in
2 min readMay 16, 2018

Бүх блогоо нүүр хуудсан дээр гаргах нь бага зэргийн …, үгүй ээ нилээд утгагүй хэрэг болно. Тэгэхээр хуудаслалт хийцгээе.

Ѳмнѳх бичлэгээ дагаад хийсэн бол одоо үргэлжлүүлээд views.py файлыг нээгээд дээд хэсэгт доорхи импорт кодыг хуулж тавина.

from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator

дараа нь all_blog функц дотор доорхи ѳѳрчлѳлтийг оруулна.

def all_blog(request):
blog_list = Blog.objects.all()
paginator = Paginator(blog_list, 3)
page = request.GET.get('page')
blogs = paginator.get_page(page)
return render(request, 'index.html', {'blogs': blogs})

Харин одоо тэмплэйт дээр ѳѳрчлѳлт оруулна. Foundation -ын documentation -ээс хуудаслалтын маркапыг хуулж бага зэрэг ѳѳрчлѳѳд,templates/index.html файлыг нээж дараах ѳѳрчлѳлтийг оруулна.

{% extends 'base.html' %}
{% block content %}
<div class="grid-x">
{% for blog in blogs %}
<div class="cell">
<div class="media-object">
<div class="media-object-section">
<h4><a href="{{blog.get_absolute_url}}">{{blog.title|capfirst}}</a></h4>
<p>{{blog.body|truncatechars:'140'}}</p>
<a href="{{blog.get_absolute_url}}">Үргэлжлэл...</a>
</div>
</div>
</div>
{% endfor %}
<nav aria-label="Pagination">
<ul class="pagination">
{% if blogs.has_previous %}
<li class="pagination-next"><a href="?page={{ blogs.previous_page_number }}" aria-label="Next page">Ѳмнѳх</a></li>
{% endif %}
{% if blogs.has_next %}
<li class="pagination-next"><a href="?page={{ blogs.next_page_number }}" aria-label="Next page">Дараах</a></li>
{% endif %}
</ul>
</nav>
</div>
{% endblock content %}

Ингээд render хийгээд харвал дараах үр дүнг үзүүлэх нь.

Дараах товчийг дараад:

Ингээд маш хялбар аргаар хуудаслалт хийчихлээ.

Тѳслийн код github дээр update хийгдсэн.

--

--

Zorig
limitx
Editor for

Lover(Programming, Anime, Manga, Music, Movie, FilmPhotography, Aikido, Travel, Internet, Open Source..) Tinker, Reader, Parkour, Web Developer, host of devnote