def listing(request):
news_list = NewPost.objects.all()
paginator = Paginator(news_list, 2)
page = request.GET.get('page')
try:
news = paginator.page(page)
except PageNotAnInteger:
news = paginator.page(1)
except EmptyPage:
news = paginator.page(paginator.num_pages)
return render_to_response('list.html', {"news": news})
def listing(request):
new_list = NewPost.objects.all()
if request.GET.get('before'):
new_list = new_list.filter(post_date__lte=request.GET.get('before'))
num_posts = 6
items = list(new_list[:num_posts + 1])
return render('list.html', {'news': items[:num_posts], 'more': items[num_posts:]})
<div class="js-items">
{% for item in news %}
<div>{{ item }} etc </div>
{% endfor %}
{% if more %}
<a href="?before={{ more.post_date.isoformat }}" class="js-load-more">Load More</a>
{% end if %}
</div>
<script> // assuming jQuery is on the page
$(document).on('click', '.js-load-more', function(e){
e.preventDefault();
var more_link = this;
$.get(this.href, function(data){
$(more_link).replaceWith($($.parseHTML(data)).find('.js-items').children());
})
})
</script>