@radeon3850
Начинающий разработчик python

Как сделать что бы после отправки формы со страницы, после ручного обновления страницы повторно повторно не отправлялась форма с данными?

Как сделать что бы после отправки формы со страницы, и если я повторно обновляю страницу вручную , повторно не отправлялась форма с данными а просто происходило обновление?

Код во Flask

@app.route('/add_slab', methods=['GET', 'POST'])
@login_required
def add_slab():
    user = User.query.all()
    q = request.args.get('q') 
    order_client = OrderClient.query.get(q)
    form = Add_slab()
    if request.method == 'POST' and form.is_submitted(): # получаем данные формы после нажатия кнопки
        form_data_slab = SlabWorks(number_slab=form.number_slab.data, thickness=form.thickness.data,
                                   value=form.type_slab.data, oreder_of_client=q, slab_works=form.type_slab.data,
                                   set_worker=0)
#Добавляем данные формы БД
        db.session.add(form_data_slab)
        db.session.commit()
        flash('Сляб добавлен к карте заказа', 'info')
        redirect(url_for('add_slab')) # перенаправляем на страницу формы
  
    slab = SlabWorks.query.filter_by(oreder_of_client=order_client.id).all()
    return render_template("add_slab.html", title='Добавление слябов', user=user, order_client=order_client, slab=slab,
                           form=form) # рендерим шаблон


Я возможно ошибаюсь с тем происходит ли это на стороне сервера или на стороне браузера и тогда стоит использовать JS для решения проблемы.
Код html

<div class="modal fade" id="myModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <!-- Modal Header -->
            <div class="modal-header">
                <h4 class="modal-title">Введите данные</h4>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <form action="" class="form-container" id="form1" method="post">
                    <table>
                        <tr>
                            {{ form.number_slab.label }}<br>
                            {{ form.number_slab(class="form-control", id="formGroupExampleInput", placeholder="№ Сляба")
                            }}<br>
                            {% for error in form.number_slab.errors %}
                            <span style="color: red;">[{{ error }}]</span>
                            {% endfor %}
                        </tr>
                        <tr>
                            {{ form.thickness.label }}<br>
                            {{ form.thickness(class="form-control", id="formGroupExampleInput", placeholder="Значение")
                            }}<br>
                            {% for error in form.thickness.errors %}
                            <span style="color: red;">[{{ error }}]</span>
                            {% endfor %}
                        </tr>
                        <tr>
                            {{ form.type_slab.label }}<br>
                            {{ form.type_slab(class="form-control", id="formGroupExampleInput", placeholder="Значение")
                            }}<br>
                            {% for error in form.type_slab.errors %}
                            <span style="color: red;">[{{ error }}]</span>
                            {% endfor %}
                        </tr>
                        <tr>
                            {{ form.value_work.label }}<br>
                            {{ form.value_work(class="form-control", id="formGroupExampleInput", placeholder="Значение")
                            }}<br>
                            {% for error in form.value_work.errors %}
                            <span style="color: red;">[{{ error }}]</span>
                            {% endfor %}
                        </tr>
                        {{ form.submit(class="btn", id="btn2")}}
                        <button type="button" class="btn cancel" data-bs-dismiss="modal">Закрыть</button>
                    </table>
                </form>
            </div>
        </div>
    </div>
</div>
  • Вопрос задан
  • 447 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
После обработки формы делайте редирект на другую страничку методом get (например на страничку с подтверждением - "все прошло ок, данные загружены"...).
У вас же вроде реализована переадресация обратно на формуredirect(url_for('add_slab')), но в форме не выводится флш месадж через get_flashed_messages(), который сетится в обработчике - flash('Сляб добавлен к карте заказа', 'info')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы