Non sono del tutto sicuro di come affrontare questo problema. Spero di arrivarci.Aggiungere campi di input dinamicamente con wtforms
Ad esempio, ho una tabella piena di indirizzi su una pagina. Il conteggio di questi è dinamico (potrebbe essere 5 o 10 o qualsiasi altro conteggio). E voglio la possibilità di modificarli su una pagina.
Il mio approccio è stato quello di creare un form con wtforms di modificare un indirizzo e moltiplicare in un Jinja2 for loop
e aggiungere ai propertys html name
e id
il loop.index0
dalla itereation, in modo che io in grado di estrarre ogni riga di dati manualmente e rimetterlo nel mio modulo, quando voglio valutarlo.
così la forma di questo esempio potrebbe essere:
class AdressForm(Form):
name = TextField()
così ora il mio modello aproach è simile al seguente (abbattere al campo di un ingresso):
{% for address in addresses %}
{{ forms.render_field(addressform.name, id = "name_" ~ loop.index0,
name = "name_" ~ loop.index0, value = address.name) }}
{% endfor %}
(forms.render_field è solo una macro per specificare le classi giuste per la funzione di campo di wtforms come usano in molti tutorial)
Quindi questo non funziona, dal momento che non è possibile passare il name
parametro manualmente per la funzione campo, dal momento che wtforms crea il parametro html name
dal variblename del modulo iniziale.
Quindi c'è un modo per aggiungere un prefisso o suffisso al nome di un modulo che voglio rendere. O si tratta di un problema XY e il mio approccio è completamente sbagliato.
o hanno faccio tutto pianura da solo (io davvero cercare di evitare questo)
Thx, funziona. Solo non con un elemento del modulo chiamato 'name'. Con qualche tentativo e 'address_entry_form.name' sarebbe sempre dal prefisso del nome campo/id – muthan
oh e con 'type' lo stesso problema – muthan
C'è un modo per adattare questo in modo che possa aggiungere campi tramite i modelli? Vorrei consentire a un utente di fare clic su un pulsante + e aggiungere un altro campo a FieldList. –