Ho questo modulo d'ordine che consente ai miei utenti di creare un ordine. Un ordine è costituito da più tuple di (producetype, quantity)
. Producetype dovrebbe essere reso in un modulo <select>
mentre la quantità può essere solo un input. Le scelte del tipo di prodotto dovrebbero essere aggiunte dinamicamente perché potrebbero cambiare. Attualmente, ho scritto questo in html nudoWTForm: FieldList con SelectField, come si esegue il rendering?
Vorrei utilizzare WTForm per questo, perché WTForm davvero semplifica il mio codice. Tuttavia, sono in grado di farlo:
Codice:
class OrderEntryForm(Form):
quantity = IntegerField('Quantity',
[validators.Required(), validators.NumberRange(min=1)])
# we will be dynamically adding choices
producetype = SelectField('Produce',
[validators.Required()],
choices=[])
class OrderForm(Form):
name = TextField('Crop', [validators.Length(min=3, max=60)])
due_date = DateField('Due Date', [validators.required()])
order_entries = FieldList(FormField(OrderEntryForm))
Ho le seguenti domande:
- Come posso aggiungere dinamicamente le scelte al
order_entries
campo della OrderForm? - Se si dispone di un ordine,
order = { name:hello, due_date:2014-06-18, order_entries:[ {producetype_id: 1, quantity: 2}, {producetype_id: 3, quantity: 4}] }
, come è possibile popolare il mioOrderEntryForm
valori conOrderEntryForm
?
Il mio codice è disponibile qui: https://gist.github.com/vicngtor/f8c8f0519dbd6b3b6110
non ho alcun problema la presentazione. Ho problemi nel prepopolare il modulo (si prega di leggere attentamente la domanda) – disappearedng