title: Pagination with Flask and Peewee
body: <p>I'm trying to <code>paginate</code> the results of a query in <code>Flask</code> using <code>Peewee</code>. I'm trying to use the function <a href="http://docs.peewee-orm.com/projects/flask-peewee/en/latest/api.html#object_list" rel="nofollow">object_list</a> from <code>playhouse.flask_utils</code>. </p>
  
  <p>You can see the example of <code>object_list</code> seems pretty straightforward and the following code is the one I'm trying to make work:</p>
  
  <pre><code>from flask import Flask
  from playhouse.flask_utils import object_list
  from peewee import *
  from database import *
  
  @app.route("/items/")                                                         
  def items():                                                                  
      all_items = Quote.select()                                                     
      return object_list("items.html", all_items) 
  </code></pre>
  
  <p>And the template <code>items.html</code> contains the following: </p>
  
  <pre><code>&lt;p&gt;Hello world&lt;/p&gt;                                               
  {% for item in all_items %}                                                       
      &lt;p&gt;{{ item.text }}&lt;/p&gt;                                                    
  {% endfor %}                                                                    
  
  {% if page &gt; 1 %}                                                               
      &lt;a class="previous" href="./?page={{ page - 1 }}"&gt;Previous&lt;/a&gt;              
  {% endif %}                                                                     
  {% if pagination.get_pages() &gt; page %}                                          
      &lt;a class="next" href="./?page={{ page + 1 }}"&gt;Next&lt;/a&gt;                      
  {% endif %}        
  </code></pre>
  
  <p>And of course, I run <code>python app.py</code> but I receive a <strong>500 Internal Server Error.</strong> I'm interested in paginating the results of my query, any idea how can I achieve this? or can you spot what I'm doing wrong here? thank you in advance.                                                              </p>
  
  <p>Edit #1, The following error appears in the terminal:</p>
  
  <pre><code>127.0.0.1 - - [09/Jan/2016 20:47:17] "GET /items/ HTTP/1.1" 500 -
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
      return self.wsgi_app(environ, start_response)
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
      response = self.make_response(self.handle_exception(e))
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
      reraise(exc_type, exc_value, tb)
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
      response = self.full_dispatch_request()
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
      rv = self.handle_user_exception(e)
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
      reraise(exc_type, exc_value, tb)
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
      rv = self.dispatch_request()
    File "/usr/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
      return self.view_functions[rule.endpoint](**req.view_args)
    File "/home/web/index.py", line 19, in items
      return object_list("items.html", all_items)
    File "/usr/lib/python2.7/site-packages/playhouse/flask_utils.py", line 64, in object_list
      **kwargs)
    File "/usr/lib/python2.7/site-packages/flask/templating.py", line 128, in render_template
      context, ctx.app)
    File "/usr/lib/python2.7/site-packages/flask/templating.py", line 110, in _render
      rv = template.render(context)
    File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 989, in render
      return self.environment.handle_exception(exc_info, True)
    File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 754, in handle_exception
      reraise(exc_type, exc_value, tb)
    File "/home/web/templates/items.html", line 9, in top-level template code
      {% if pagination.get_pages() &gt; page %}
  UndefinedError: 'playhouse.flask_utils.PaginatedQuery object' has no attribute 'get_pages'
  </code></pre>