如何正确使用Jinja2计数/长度而没有错误?

df-*_*ean 2 python jinja2 bottle

我的模板中有这个:

<h2>
    Users ({{ users|length }})
</h2>
Run Code Online (Sandbox Code Playgroud)

而且我还有一个循环显示用户行:

    {% for user in users %}    
    <tr>
        <td>
            {{ user.email }}
            etc...
        </td>
    </tr>
    {% endfor %}
Run Code Online (Sandbox Code Playgroud)

我看不到我在做什么错。用户表效果很好。但是,当我用长度过滤器添加h2时,出现此错误:

Traceback (most recent call last):
  File "/Users/sean/Projects/appcash.me/_git/www/bottle.py", line 856, in _handle
    return route.call(**args)
  File "/Users/sean/Projects/appcash.me/_git/www/bottle.py", line 1721, in wrapper
    rv = callback(*a, **ka)
  File "/Users/sean/Projects/appcash.me/_git/www/views/admin.py", line 27, in custom_admin_page
    return template('admin/users.html', users=users)
  File "/Users/sean/Projects/appcash.me/_git/www/bottle.py", line 3487, in template
    return TEMPLATES[tplid].render(kwargs)
  File "/Users/sean/Projects/appcash.me/_git/www/datafly/core.py", line 184, in render
    return self.tpl.render(**_defaults)
  File "/Users/sean/Projects/appcash.me/_git/venv/lib/python2.7/site-packages/jinja2/environment.py", line 969, in render
    return self.environment.handle_exception(exc_info, True)
  File "/Users/sean/Projects/appcash.me/_git/venv/lib/python2.7/site-packages/jinja2/environment.py", line 742, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "<template>", line 3, in top-level template code
  File "<template>", line 57, in top-level template code
  File "<template>", line 8, in block "content"
TypeError: object of type 'Cursor' has no len()
Run Code Online (Sandbox Code Playgroud)

chi*_*aku 5

您可以尝试以下方法:

{{ users.count() }}
Run Code Online (Sandbox Code Playgroud)