Flask перенаправлять всегда, используя аргумент функции по умолчанию - PullRequest
0 голосов
/ 22 марта 2020

Учитывая маршрут, такой как приведенный ниже, я обнаружил, что если у меня есть значение по умолчанию для аргумента test , оно не изменится при передаче значения через url_for с перенаправление . Я хотел бы изменить параметр test при визуализации шаблона, в зависимости от того, была ли форма только что отправлена ​​или нет.

@app.route('/view_story/<story_id>', methods=['GET', 'POST'])
def view_story(story_id, test='no'):
    ...
    if current_user.is_authenticated:
        if request.method == 'POST':
            #Add stuff to database from the form. 
            return redirect(url_for('view_story', story_id=story_id, test='yes'))

    return render_template('story.html', test=test)

1 Ответ

1 голос
/ 22 марта 2020

Попробуйте следующий код:

@app.route('/view_story/<story_id>', defaults={"test": "no"})
@app.route('/view_story/<story_id>/<test>', methods=['GET', 'POST'])
def view_story(story_id, test):
    ...
    if current_user.is_authenticated:
        if request.method == 'POST':
            #Add stuff to database from the form. 
            return redirect(url_for('view_story', story_id=story_id, test='yes'))

    return render_template('story.html', test=test)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...