return redirect () делает код недействительным перед этим во Flask - PullRequest
0 голосов
/ 10 июня 2018

Я работаю с Flask, и у меня есть страница с 2 разделами: один, где вы выбираете из диапазона флажков и отправить свой выбор, и другой, где все ваши выборы помещаются в текстовую область:

<section id="about">
  <div class="main-container">
    <form action="" method="post">
    {% for event in events: %}
      <input type="checkbox" name="new_events" value="{{ event.name }} @ {{ event.venue }} at {{ event.start_date }}">  {{ event.name }} @ {{ event.venue }} at {{ event.start_date }}<br>
    {% endfor %}
      <input type="submit" value="Submit" align="center">
    </form>
  </div>
</section>

<section id="services">
  <div class="main-container">
    <form action="" method="post">
      <textarea>
        {% for new_event in new_events %}
          {{ new_event }}
        {% endfor %}
      </textarea>
    </form>
  </div>
</section>

Тогда я пытаюсь сделать, как только вы нажмете на кнопку «Отправить» на странице, чтобы перейти ко второму разделу (id = services):

@app.route("/", methods=["POST", "GET"])
def index():
    events = db.session.query(Event)
    new_events = []

    if request.method == "POST":
        new_events = request.form.getlist('new_events')
        return redirect(url_for('index', _anchor="services", new_events=new_events))

    return render_template('index.html', events=events, new_events=new_events)

Если я запускаюПриведенный выше код, закомментировав «return redirect ()», позволяет без проблем заполнить текстовую область.Мне просто нужно прокрутить вниз, чтобы увидеть это.Как только я активирую код return redirect (), он прокручивается вниз к моей текстовой области, но больше не заполняется.Что я делаю не так?

Очень ценю!

1 Ответ

0 голосов
/ 10 июня 2018

Мне удалось заставить его работать, исключив:

return redirect(url_for('index', _anchor="services", new_events=new_events)

и вызвав простую функцию прокрутки в моем шаблоне jinja2 во втором разделе:

 {% if new_events %}
    <script>
       $("html, body").animate({ scrollTop: $("#services").offset().top }, 500);
    </script>
  {% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...