我使用烧瓶,小便,sqlite3。对于结算系统,我试图为特定用户创建所有账单的概述。新的账单添加了" bill_number"并且可以有多个订单项。如果账单有多个订单项,则" bill_number"将在数据库中重复。当我查询数据库I时,只想获得显示" bill_number"的第一行。并使用相同的" bill_number"。
跳过其他行SQlite Database:
| id | bill_number | user_id | description | price |
| 1 | 1 | 8 | Logo Design | 250.00 |
| 2 | 2 | 8 | Web Design | 500.00 |
| 3 | 2 | 8 | Logo Design | 250.00 |
| 4 | 3 | 8 | Web Design | 550.00 |
| 5 | 4 | 8 | Img Design | 250.00 |
在我的应用中我喜欢用以下内容查询:
@app.route('/billOverview')
def bill_overview():
bills = models.Bill.select().where(models.Bill.user_id == current_user.id).deduplicate(models.Bill.bill_number)
return render_template('bills-overview.html', bills=bills)
这样我就可以轻松地在我的模板中阅读:
{% for bill in bills %}
view details for <a href="">Bill #{{ bill.bill_number }}</a>
{% endfor %}
呈现的内容类似于:
view details for Bill #1
view details for Bill #2
view details for Bill #3
view details for Bill #4
答案 0 :(得分:1)
我实际上是自己解决了这个问题。答案比预期容易得多:-)
bills = models.Bill.select().where(models.Bill.user_id == current_user.id).group_by(models.Bill.bill_number)
我一直在寻找 group_by()
答案 1 :(得分:0)
看起来peewee不支持你提到的API。你有几个选择:
(bill_number, user_id)
行。创建另一个表(bill_items
或其他东西)来存储每个单独的项目。这样,您的select
查询将返回您想要的行,您可以加入新表以获取详细视图。