2013-05-22 14 views
6

sto generando un form html con wtforms come questo:WTForms RadioField valori predefiniti

<div class="control-group"> 
    {% for subfield in form.time_offset %} 
    <label class="radio"> 
     {{ subfield }} 
     {{ subfield.label }} 
    </label> 
    {% endfor %} 
</div> 

La mia classe forma è simile a questo:

class SN4639(Form): 
    time_offset = RadioField(u'Label', choices=[ 
     ('2', u'Check when Daylight saving has begun, UTC+02:00'), 
     ('1', u'Check when Daylight saving has stopped, UTC+01:00')], 
     default=2, validators=[Required()]) 

Quando ora apro la form di modifica, ottengo via SQL il valore 1 o 2 - come posso preimpostare il radiobutton di specifica?

+0

Se si desidera impostare di default in forme per le quali ragioni sono che si vuole fare che in html? Vuoi due valori predefiniti? – Denis

+0

Nel modulo di creazione, imposto i valori predefiniti, come puoi vedere, nella classe. Ma ora sto creando un modulo di modifica e lì dovrebbe essere preselezionato. per esempio. "maschio/femmina" e quando ho ottenuto il valore 'm' dal db, il maschio dovrebbe essere selezionato ... Come posso fare questo? – Kilrathy

+0

default = yourObjectFromDB.sex ???? – Denis

risposta

2

Se ho capito la tua domanda correttamente, si desidera avere la forma di rendering con una scelta preselezionata (invece di restituire una scelta di default se nessun valore è presentata alla forma) ...

ciò che si può fare è costruire la forma durante l'impostazione del valore pre-selezionato:

myform = SN4639(time_offset='2') 

E poi passare myform off per il modello da rendere.

0

Form.__init__ accetta un argomento di parola chiave obj= che popolerà il modulo dall'oggetto specificato se non vengono forniti dati di form o altri valori predefiniti. Passa il risultato dal database a quello e dovrebbe funzionare.

5

di default = 2 deve essere di tipo stringa, non int:

class SN4639(Form): 
    time_offset = RadioField(u'Label', choices=[ 
     ('2', u'Check when Daylight saving has begun, UTC+02:00'), 
     ('1', u'Check when Daylight saving has stopped, UTC+01:00')], 
     default='2', validators=[Required()]) 
Problemi correlati