我正在使用Flask构建购物车用于学习目的。我选择使用带有peewee(ORM)和WTForms的SQLite。我将它设置为显示数据库中的项目以及描述和图像。我有一个表格要求数量,然后它应该将项目及其数量添加到侧栏。
问题
当您输入数量并点击“添加”时,所有数量字段都将填充该数字,并且它会将数据库中第一个项目的名称发布到具有该数量的侧栏。
app.py
@app.route('/cart', methods=['GET', 'POST'])
@login_required
def cart():
form = forms.PartsSelectForm()
if request.method == 'POST':
l_name = Parts.get(Parts.id).part_name
models.List.create(l_part_name=l_name,
l_part_qty=form.quantity.data)
parts = Parts.select()
list = List.select()
return render_template('cart.html', parts=parts, list=list, form=form)
forms.py
class PartsSelectForm(Form):
quantity = IntegerField()
cart.html
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>Image</th>
<th>Quantity</th>
<th>Action</th>
</tr>
</thead>
{% for part in parts %}
<tr>
<td>{{ part.part_name }}</td>
<td>{{ part.part_desc }}</td>
<td style="width: 200px; height:200px;"><img src="/static/img/{{ part.part_img }}" style="max-height:100%; max-width:100%"></td>
<form method="POST" action="">
<td>{{ form.quantity }}</td>
<td><button type="submit" id="submit" class="btn btn-success">Add</button></td>
</form>
</tr>
{% endfor %}
</table>
答案 0 :(得分:0)
你循环遍历你的部分,但是你总是使用form.quantity,它在每次迭代时都是相同的,你当前正在循环的“部分”。