2015-04-09 3 views
2

Возможно, это лучший способ сделать это, но я пытаюсь использовать скрытую форму для определения кнопок в Flask с использованием WTForms. Когда я пытаюсь установить значения, кажется, что поля генерируются дважды. Один раз со значением по умолчанию "" и снова со значением, установленным в шаблоне. В конечном итоге то, что прошло во время публикации, является нулевым значением для обеих переменных.WTForms: установить значение при рендеринге

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

Вот что у меня есть:

Форма определяется в приложении колба:

class refreshInstances(Form): 
    type = HiddenField('type') 
    value = HiddenField('value') 


def instances(): 
    form = refreshInstances() 
    return render_template('instances.html', form=form) 

Подмножество шаблона instances.html:

<form class="form" method="POST" role="form" id="updall"> 
      {{ form.hidden_tag() }} 
      {{ form.type(value='res_id') }} 
      {{ form.value(value='12345') }} 
</form> 
<button class='btn btn-primary btn-block' type='submit' form='updall'><span class="glyphicon glyphicon-refresh"></span> Update All</button> 

Вынесено HTML:

<form class="form" method="POST" role="form" id="updall"> 
<div> 
    <input id="csrf_token" name="csrf_token" type="hidden" value="1428"> 
    <input id="type" name="type" type="hidden" value=""> 
    <input id="value" name="value" type="hidden" value=""> 
</div> 
<input id="type" name="type" type="hidden" value="res_id"> 
<input id="value" name="value" type="hidden" value="cjohnson"> 
</form> 
<button class="btn btn-primary btn-block" type="submit" value="submit" form="updall"><span class="glyphicon glyphicon-refresh"></span> Update All</button> 

ответ

0

Я думаю этот код может решить вашу проблему. Вы должны адаптировать его по своему усмотрению.

def instances(): 
    form = refreshInstances() 
    form.type.default = 123 
    form.value.default = 456 
    form.process() 
    return render_template('instances.html', form=form) 

<form class="form" method="POST" role="form" id="updall"> 
    {{ form.hidden_tag() }} 
    {{ form.type }} 
    {{ form.value }} 
</form> 
Смежные вопросы