На моем сайте не работает система поиска товаров. Работаю на Python Flask HTML
Вот код из main.py:
@app.route('/products/', methods=['GET', 'POST'])
@login_required
def products():
global poisk
korzina = []
if request.method == 'POST':
item_id = request.form['item_id']
row = db.cart.get('item_id', item_id)
if not row:
data = {'item_id':item_id, 'amount':1}
db.cart.put(data)
else:
data = {'item_id':item_id, 'amount':row.amount+1}
db.cart.delete('item_id', item_id)
db.cart.put(data)
data = db.items.get_all()
poisk = request.form['poisk']
return render_template('products.html', data=data, korzina=korzina, poisk=poisk)
data = db.items.get_all()
for row1 in data:
res = db.cart.get('item_id', row1.id)
if res:
row1.amount = res.amount
korzina.append(str(row1.amount))
else:
row1.amount = 0
korzina.append(str(row1.amount))
return render_template('products.html', data=data, korzina=korzina)
Когда заходишь на страницу с продуктами, появляется ошибка:
TypeError: 'in <string>' requires string as left operand, not Undefined
Порой, когда что то в коде меняю, ошибка меняется на Bad Request. Вот код из HTML:
{% extends 'index.html' %}
{% block head %}
<link rel="stylesheet" href= "../static/css/products.css">
<title>Продукты</title>
{% endblock %}
{% block content %}
<form action="/products" method='POST'>
<input type="text" placeholder="Введите название товара" name='poisk'>
<button type="submit">Найти!</button>
</form>
<table>
<tr>
<th>Наименование</th>
<th>Описание</th>
<th>Цена</th>
<th>Фото</th>
<th></th>
</tr>
{% if poisk == '' %}
{% for row in data %}
<form action="/products" method='POST'>
<tr>
<input type="hidden" value="{{row.id}}" name='item_id'>
<td>{{row.name}}</td>
<td>{{row.description}}</td>
<td>{{row.price}} руб</td>
<td><img src="../static/images/{{row.image}}" width="120" height="90" /></td>
<td><button type="submit">В корзину</button><br>В корзине: {{korzina[row.id - 1]}}</td>
</tr>
</form>
{% endfor %}
{% endif %}
{% if poisk != '' %}
{% for row in data %}
{% if poisk in row.name %}
<form action="/products" method='POST'>
<tr>
<input type="hidden" value="{{row.id}}" name='item_id'>
<td>{{row.name}}</td>
<td>{{row.description}}</td>
<td>{{row.price}} руб</td>
<td><img src="../static/images/{{row.image}}" width="120" height="90" /></td>
<td><button type="submit">В корзину</button><br>В корзине: {{korzina[row.id - 1]}}</td>
</tr>
</form>
{% endif %}
{% endfor %}
{% endif %}
</table>
<div class='footer_mnogo_contenta'>
<span style="font-size: 15pt;">Тех.поддержка: <br>
Почта: почта <br>
Telegram: Телефон <br>
Номер телефона: телефон<span>
</div>
{% endblock %}
Уже просто не знаю что делать. Помогите пожалуйста! Вот база данных с товарами:
Источник: Stack Overflow на русском