Ich versuche, Seitennummerierung zu implementieren. Ich folge hauptsächlich Django-Dokumentation für die Paginierung, https://docs.djangoproject.com/en/1.8/topics/pagination/...I bin mir nicht sicher, was ich falsch gemacht habe, aber der Paginierungseffekt wird nicht aktiviert: Wenn ich Seite nur drei Posts eingestellt habe, zeigt es immer noch neun Posts. Ich habe nichts Besonderes gemacht, ich habe einfach die Dokumentation verfolgt.Schwierigkeit mit Paginierung und Zeilenformatierung in Django Vorlage
def category_detail(request, slug):
obj = NewsCategory.objects.get(slug=slug)
newsInCat = obj.news_set.all() #for the list of news
paginator = Paginator(newsInCat, 3) # Show 25 contacts per page
page = request.GET.get('page')
try:
news_set = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
news_set = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
news_set = paginator.page(paginator.num_pages)
bestInCat = obj.news_set.get_bestInCat()
specialInCat = obj.news_set.get_special()
mustSeeInCat = obj.news_set.get_mustSeeInCat()
recommend = obj.news_set.get_recommend()
ad2 = Sponsored.objects.get_ad2()
context = {
"obj":obj,
"news_set":news_set,
"newsInCat":newsInCat,
"bestInCat":bestInCat,
"specialInCat":specialInCat,
"mustSeeInCat":mustSeeInCat,
"recommend":recommend,
"ad2":ad2
}
und das folgende ist mein HTML ... neben Seitennummerierung habe ich noch ein Problem. Wenn der Titel des Posts zu lang wird und eine andere Zeile unterbricht, wird das Format meiner Seite durcheinander gebracht. Es sieht aus wie dieses
<div class="row">
<article>
{% for news in newsInCat %}
<div class='col-sm-4'>
<div class="content">
<figure class="story-image">
<a href='{{news.get_absolute_url }}'><img src="{{news.get_image_url}}" class="img-rounded" alt="Cinque Terre" width="360" height="267"></a>
</figure>
<div id="forever "style="margin-bottom:30px;">
<a href='{{news.get_absolute_url }}' style="text-decoration:none; color:#282E5C;"><h4 style="font-size: 18px;
font-weight: 400;">{{news.title}}</h4></a>
</div>
</div>
</div>
{% endfor %}
</article>
</div>
<div class="pagination">
<span class="step-links">
<!-- {% if news_set.has_previous %}
<a href="?page={{ news_set.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ news_set.number }} of {{ news_set.paginator.num_pages }}.
</span> -->
{% if news_set.has_next %}
<a href="?page={{ news_set.next_page_number }}">Load More</a>
{% endif %}
</span>
</div>
hallo ok danke für die antwort, aber ich bin mir nicht sicher ob ich es richtig verstehe. also wo muss ich setzen {% if forloop.counter | divisibleby: 3%} Ich habe versucht, es vor div class = "row" zu lokalisieren, aber das gibt mir einen Fehler. Ich habe versucht, es für eine Schleife zu setzen, aber dann durchläuft es nur 3 Posts und stoppt – winixxee
Sie müssen die 'if'-Anweisung in die Forloop setzen, da sie den Zähler der Schleife referenziert. Ich weiß nicht, warum es ein Problem ist, dass es nach drei Haltestellen: Sie instanziiert das 'Paginator' Objekt mit 3 Artikeln pro Seite:' Paginator (newsInCat, 3) ' – brianpck
Tut mir leid, aber der Code oben ist so verwirrend wie meins ..// Ich fühle mich wie es überall ist ... vielleicht bin ich einfach zu noobie..und ich setze es auf 25, \t paginator = Paginator (newsInCat, 25) aber das gibt mir nur noch drei .. – winixxee