Я совсем новичок в python. Я пытаюсь создать небольшую складскую программу, в которой данные извлекаются из базы данных, и пользователь может «редактировать» количество товаров на складе.
Я получил список из базы данных. Я могу передать данные в список. Я добавил модал, где отображается строка, выбранная в списке. также отлично работает его правильные данные, которые отображаются. Я добавил поле ввода (antal), в которое можно вставить новый запас.
Моя проблема в том, что я не могу передать входные данные из модального в app.route по маршрутам, чтобы я мог обновить база данных.
Я получаю только возврат get / list, разве это не должно быть возвращенное сообщение?
вот код:
list. html
{% extends 'base.html' %}
{% block head %}
{{ super() }}
{% block title %}
<title>Produkt Liste</title>
{% endblock title %}
{% endblock head %}
<content>
{% block content %}
<br>
<div id="content" class="p-4 p-md-5 pt-5">
<h2 class="mb-4">Produkt Liste</h2>
<div class="row">
<div class="col-md-13">
<table class="table table-striped table-hover">
<thead>
<tr>Søg <a<span class="glyphicon glyphicon-search" style="font-size:20px;"></span></a>
<th>Id</th>
<th>Lokation</th>
<th>Produkt</th>
<th>Antal på Lager</th>
<th>Oprettet</th>
<th>Ændret</th>
<th>Ændret af</th>
</tr>
</thead>
{% for ProductStock in lists %}
<tbody>
<tr>
<td>{{ ProductStock.id }}</td>
<td>{{ ProductStock.location }}</td>
<td>{{ ProductStock.product }}</td>
<td>{{ ProductStock.available_stock }}</td>
<td>{{ ProductStock.time_created }}</td>
<td>{{ ProductStock.time_updated }}</td>
<td>{{ ProductStock.changed_by }}</td>
<td><button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#myOutput{{ ProductStock.id }}">Rediger</button></td>
</tr>
{% endfor %}
</tbody>
</table>
{% for ProductStock in lists %}
<!-- Modal -->
<div class="modal fade" id="myOutput{{ ProductStock.id }}" role="dialog" aria-labelledby="myOutput{{ ProductStock.id }}" aria-hidden="true">
<div class="modal-dialog modal-lg">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Rediger antal</h4>
<button type="button" class="close" data-dismiss="modal">×</button><span class='glyphicon glyphicon-chevron-left'></span> Tilbage</a></p>
</div>
<div class="modal-body">
<form action="/products" method="POST">
<label for="antal">Antal:</label><br>
<input type="number" class="form-control" id="antal" value="{{ ProductStock.available_stock }}" placeholder="antal" name="antal" min="1" max="1000000"><br>
</form>
</div>
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Id</th>
<th>Lokation</th>
<th>Produkt</th>
<th>Antal</th>
<th>Oprettet den</th>
<th>Ændret den</th>
<th>Ændret af</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ ProductStock.id }}</td>
<td>{{ ProductStock.location }}</td>
<td>{{ ProductStock.product }}</td>
<td>{{ ProductStock.available_stock }}</td>
<td>{{ ProductStock.time_created }}</td>
<td>{{ ProductStock.time_updated }}</td>
<td>{{ ProductStock.changed_by }}</td>
</tr>
</tbody>
</table>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Luk</button>
<form>
<button type="submit" class="btn btn-primary" value="antal" id="modal-confirm" data-toggle="modal" data-target="antal">Gem ændringer</button>
</form>
</div>
</div>
</div>
</div>
{% endfor %}
{% endblock content %}
</content>
иways.py
@app.route('/lists', methods=['GET', 'POST'])
@login_required
def lists():
lists = ProductStock.query.all() #filter_by(item_number=item_number).first_or_404()
form = ListForm()
ProductStocks.available_stock = form.antal.data
if request.method == 'POST':
ProductStock.available_stock = form.antal.data
flash('Your changes have been saved.')
print('valideret')
return redirect(url_for('lists'))
elif request.method == 'GET':
form.antal.data = ProductStock.available_stock
flash('Your changes have NOT been saved.')
print (ProductStock.available_stock)
return render_template('list.html', lists=lists, title="List", form=form)