2016-04-08 43 views
1

Son zamanlarda sayfalama işleminin daha fazla yüklenmeyeceğini öğrendim. bu yüzden onu uyguladım. Ama şimdi uygulamamı tamamladım, bazı sorunların olduğunun farkındayım. Benim web bu enter image description heredaha fazla özellik veya sonsuz sayfalama yükleme

gibi bir biçimdedir Yukarıdaki sayfada enter image description here

üst parçasıdır ve yukarıdaki sayfanın altında bir parçasıdır.

tüm yayınlarım aşağıdaki kısımlara giriyor ve daha fazla gönderi yazdığım için daha fazla yayın yazacağım sayfalar arasında pagination uyguluyorum.

sayfa numaralandırma düzgün çalışıyor, ancak bir sonraki sayfaya gittiğimde, üst kısım yeni bölümleri gösterirken alt kısımda duruyor. (Üst kısmın varlığını fark etmeden bunu hayata geçirdim) Kullanıcılarımın bir sonraki sayfayı tıkladıklarında üst kısmı görmesini istemiyorum.

Sanırım bu sorunu çözmek için iki yolum var. Bir şekilde bir sonraki sayfaya tıklandığında üst kısım gösterilmeyecektir.

Veya Başka bir sayfaya girmek yerine daha fazla yayın göstermek için daha fazla yükle düğmesini kullanıyorum.

Sorun, bunlardan birini nasıl yapacağımı bilmiyorum .. bir tane lütfen bana yardım edin? sayfa numarası

{% if news_set.number==1%} 
    {{ top_block}} 
{% endif %} 
<div class="row"> 
<div> 
{% for news in news_set %} 
    <div class='col-sm-4'> .... 

2 örnek

için 1. eşitse

def category_detail(request, slug): 

    obj = NewsCategory.objects.get(slug=slug) 
    newsInCat = obj.news_set.all() #for the list of news 
    paginator = Paginator(newsInCat, 25) # 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() 


    context = { 
     "obj":obj, 
     "news_set":news_set, 
     "newsInCat":newsInCat, 
     "bestInCat":bestInCat, 

    } 
    return render(request, "news/category_detail.html", context)  



<div class="row"> 
<div> 
{% for news in news_set %} 
    <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 %} 
</div> 
</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> 

cevap

1

1) html Eğer burada

basittir istek ajax ise kısmi html işleyebilen) üst blok izlenebilir kod

views.py

def category_detail(request, slug): 
    obj = NewsCategory.objects.get(slug=slug) 
    newsInCat = obj.news_set.all() #for the list of news 
    paginator = Paginator(newsInCat, 25) # 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) 
    if request.is_ajax(): 
     context = { 
      'news_set':news_set 
     } 
     return render(request,"news/category_detail_ajax.html",context) 
    else: 
     bestInCat = obj.news_set.get_bestInCat() 
     context = { 
      "obj":obj, 
      "news_set":news_set, 
      "newsInCat":newsInCat, 
      "bestInCat":bestInCat, 
     } 
     return render(request, "news/category_detail.html", context)  

category_detail_ajax.html

{% for news in news_set %} 
    <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 %} 

javascript

jQuery(document).on('click','.load-more',function(e){ 
    e.preventDefault(); 
    jQuery.ajax({ 
     url:jQuery(this).attr('href') 
    }).done(function(data){ 
     jQuery('.row>div').append(data); 
    }); 
}); 
+0

Eğer ben de denedim teşekkür, tamamen ilkini anladı ve bu bir harika çalıştı ama biraz ikinci unerstood biri ve bu bir şey yapmaz .... hangisi hangisi daha üstün? Sanırım ikinci olurum ama neden? –

+0

veya 1) veya 2) kullanabilirsiniz. 2 biri için düğmenin değişim URL'si gibi bazı değişiklikler yapmalısınız, daha fazla düğme yüklemek için css sınıfını ekleyin. Size sadece yönünü vermedim sadece bana yol verdim :) – AlmasK89

+0

Önce bir ile gidiyorum;) –

İlgili konular