我正在使用烧瓶。数据库是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 %}
答案 0 :(得分:1)
在完成列表功能中,选择与用户 OR (|)完成对应的所有列表。选择完成列表时,两个条件都应该为true,因此您需要和(&amp;)