Query with paging by cursor causes error because of limitations for “IN filter” in cursor() method… What should be the alternative?

前端 未结 5 700
-上瘾入骨i
-上瘾入骨i 2020-12-20 02:15

I am developing a twitter like microblogging system by using the following models:

class Member(db.Model):    
    user = db.UserProperty(required=True)
             


        
5条回答
  •  别那么骄傲
    2020-12-20 02:56

    A quick and nasty way...

    Download this pagintor.py import it into your project.

    Then you can do something like this for pagination

        from paginator import Paginator, InvalidPage, EmptyPage
         model = Member.all().fetch(100)
         paginator = Paginator(model,5)
    
                    if(self.request.GET):
                        page = int(self.request.GET.get('page', '1'))
                        if(page is not None):
                            try:
                                page = int(self.request.GET.get('page', '1'))
                            except ValueError:
                                page = 1
    
                            # If page request (9999) is out of range, deliver last page of results.
                            try:
                                paginator = paginator.page(page)
                            except (EmptyPage, InvalidPage):
                                paginator = paginator.page(paginator.num_pages)
        return self.response.out.write( template.render(path+'.html',{'paginator':paginator}))
    
    
    #In templates
    
    {% if paginator.object_list %}
    
    {% for values in paginator.object_list %}
    
    #do your tasks
    
    {% endfor %}
    
    

    on click of next or previous , take the href val() and pass to the url as get variable like http://someurl?page=.

    more reference here

提交回复
热议问题