2015-08-20 4 views
3

У меня есть форма, которая будет использоваться для новой отправки и обновления. Мой вопрос о тексте кнопки отправки. Я хочу изменить текст на Новый submit и до Новое обновление, в зависимости от ситуации. Это чисто информативное.Обновить текст кнопки отправки в wtforms

class Interview(Form): 
    ... 
    submit = SubmitField('New submit') 

Если это возможно, я хочу, чтобы избежать создания нового класса, с точно теми же полями, только из текста представить.

ответ

4

правильный способ сделать это с Mixins:

class InterviewMixin(): 
    ... 

class InterviewSubmit(Form, InterviewMixin): 
    submit = SubmitField('New submit') 

class InterviewUpdate(Form, InterviewMixin): 
    submit = SubmitField('New update') 
0

Я решил проблему, не включив кнопку отправки в определение формы, вместо этого я добавляю кнопку отправки в HTML, основываясь на том, какой ярлык я хочу на нем.

{% if pagetitle == 'Update' %} 
    <p><input type="submit" name="btn" value="New Update"></p> 
{% endif %} 
{% if pagetitle == 'Submit' %} 
    <p><input type="submit" name="btn" value="New Submit"></p> 
{% endif %} 

Используя этот способ, вы можете использовать ту же форму, и имеют различные надписи на кнопке, в зависимости от того, какой должна быть использована.

Если вам нужно, вы можете использовать ту же переменную, чтобы установить действие формы, если вам нужно направить на разные виды.

Или вы можете использовать значение кнопки в представлении.

if flask.request.form['btn'] == 'New Update': 
    ... 
elif flask.request.form['btn'] == 'New Submit': 
    ... 
0

Правильный путь должен был бы сделать две формы и проверьте, какая кнопка нажата подать на стороне сервера.

if submit_form.validate_on_submit() and submit_form.any_field.data: 
     print "submit_form submit button is Pressed" 
elif update_form.validate_on_submit() and update_form.any_field.data: 
     print "update_form submit button is submitted"