显示数据库中的布尔值计数

时间:2016-06-05 22:47:52

标签: python python-3.x flask flask-wtforms

我正在使用烧瓶。数据库是sqlite3。 简而言之。我可以制作列表,我可以将它们标记为“已完成”,我想在用户配置文件中显示已完成列表的数量。

此时它显示的与“所有列表”相同..

这是我的List模型:

class List(Model):
    timestamp = DateTimeField(default=datetime.datetime.now)
    user = ForeignKeyField(
        rel_model=User,
        related_name='list'
    )
    content = TextField()
    finished = BooleanField(default=False)

    class Meta:
       database = DATABASE
       order_by = ('-timestamp',)

这是我在用户模型上找到完成列表功能:

 def finished_lists(self):
    return List.select().where(
        (List.user == self) |
        (List.finished == True)
    )

这是个人资料模板:

{% extends "stream.html" %}

{% block content %}
<div class="row">
    <div class="">
        <h1>{{ user.username }}</h1>
    </div>
    <div class="">
        <div class="">
            <h5>Followers</h5>
            <p>{{ user.followers().count() }}</p>
        </div>
        <div class="">
            <h5>Following</h5>
            <p>{{ user.following().count() }}</p>
        </div>
        <div class="">
            <h5>Lists</h5>
            <p>{{ user.list.count() }}</p>
        </div>
        <div class="">
            <h5>Finished</h5>
            <p>{{ user.finished_lists().count() }}</p>
       </div>

    </div>

    <div class="grid-25">
        {% if current_user.is_authenticated %}
            {% if user != current_user %}
                {% if not user in current_user.following() %}
                    <a href="{{ url_for('follow', username=user.username) }}" class="small">Follow</a>
                {% else %}
                    <a href="{{ url_for('unfollow', username=user.username)     }}" class="small">Unfollow</a>

                {% endif %}
            {% endif %}
        {% endif %}
    </div>
</div>

{{ super() }}
{% endblock %}

1 个答案:

答案 0 :(得分:1)

在完成列表功能中,选择与用户 OR (|)完成对应的所有列表。选择完成列表时,两个条件都应该为true,因此您需要(&amp;)