2013-05-07 10 views

risposta

7

Se si sta tentando di rimuovere un campo, è possibile consultare Removing Fields Per-instance nella documentazione.

Dalla documentazione:

A volte, si crea un modulo che ha campi che non sono utili in tutte le circostanze oa tutti gli utenti. Mentre è effettivamente possibile con l'ereditarietà del modulo definire un modulo con esattamente i campi necessari, a volte è necessario solo modificare un modulo esistente. Per fortuna, forme possono avere campi rimossi post-esemplificazione utilizzando la parola chiave del :

class MagazineIssueForm(Form): 
    title = TextField() 
    year = IntegerField('Year') 
    month = SelectField(choices=MONTHS) 

def edit_issue(): 
    publication = get_something_from_db() 
    form = MagazineIssueForm(...) 

    if publication.frequency == 'annual': 
     del form.month` 
+0

Grazie. Ma sto cercando di disabilitare il campo, non cancellarlo. – sixarm

+0

Ah scusa - ho frainteso. Come intendi disabilitare? Visualizzalo ma fallo in modo che il campo non possa essere modificato? – Ewan

+0

Questo è molto simile ad un'altra domanda, e ho scritto una risposta dettagliata anche qui: http://stackoverflow.com/a/16576294/244393 – Crast

5

E 'quasi come @Bibhas proposto. Se ho capito bene e si desidera disabilitare un campo attraverso l'attributo HTML disabilitata, allora le seguenti ha lavorato per me:

form.field(disabled=True) 

Questa risposta potrebbe essere un po 'tardi, ma se nessun altro ha questo problema, potrebbe aiutare.

3

vim forms.py:

add_time = DateTimeField(

    '添加时间', 
    format='%Y-%m-%d %H:%M:%S', 
    default=datetime.datetime.now(), 
    # I use bs3,and it well add input an attribute disabled 
    render_kw={'disabled':''}, 
    validators=[DataRequired()], 
) 
+0

Grazie per questo! Nel mio caso, il modulo era già stato istanziato, quindi ho appena fatto 'form.my_field.render_kw = {'disabled': 'disabled'}'. – elethan

Problemi correlati