문제

I've got a few sorted querysets im passing to a template. Multiple paginations are shown per page. The problem is after the first series of paginated items, subsequent ones lose their sort. Here's my code:

views.py

    def entry_index(request, parent_cat, child_cat, template='entry_index.html',  
                    page_template='entry_index_page.html'):  
                context = { 'items_by_percentage_saved':  
                     Item.objects.filter(category=category).order_by('-percentage_saved'),  }
                if request.is_ajax():
                    template = page_template
                    return render_to_response(template, context,  
                                              context_instance=RequestContext(request))

by_percentage_saved.html

{% load endless %}
{% paginate items_by_percentage_saved %}
{% for item in items_by_percentage_saved %}
<div class="large-4 small-6 columns">
  <a class="th" href=""><img style="height: 12em;" src={{ item.image_url }}></a>

  <div class="panel">
    <h5>{{ item.title|truncatechars:50 }}</h5>
    ...
  </div>
</div>
{% endfor %}
{% show_more %}

Update I've done some more debugging and the items_by_percentage_saved queryset is definitely sorted in entry_index(). I put a few breakpoints in by_percentage_saved.html to see if I could figure out whats going on, but strangely after you click "more" to get the next paginated data, entry_index() is called again but the breakpoints never fire a second time in by_percentage_saved.html, even though the new paginated data is generated. Talk about confusing

도움이 되었습니까?

해결책

Ok have solved it by going through the docs again and using page decorators. The docs kinda make it sound like these are optional but my guess they are a requirement for multiple pagination on the same page.

from endless_pagination.decorators import page_template @page_template('entry_index_page.html')
@page_template('by_percentage_saved.html', key='by_percentage_saved')
def entry_index(request, parent_cat, child_cat, template='entry_index.html',
extra_context=None):

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top