2015-06-10 4 views
8

sto aggiungendo un campo in più per un ModelForm Django così:aggiungere il campo in più per ModelForm

class form(forms.ModelForm): 
    extra_field = forms.CharField(label='Name of Institution') 
    class Meta: 
     model = db_institutionInstitution 
     fields = ['conn_kind','time','inst_name2'] 

La forma è in realtà lavorando bene, ma non posso precompilare esso. Io lo uso in un modelformset_factory:

formset = modelformset_factory(db_institutionInstitution,form=form) 

ho eseguito manualmente tramite un set di query e aggiungere la voce nel dizionario necessaria per il modulo aggiuntivo nel formset. Tuttavia, quando chiamo:

formset1 = formset(prefix='brch',queryset=qs1) 

il extra_field non è precompilato come previsto (il resto funziona bene).

Qualcuno può aiutare?

risposta

5

Se si desidera impostare un valore predefinito.

extra_field = forms.CharField(label='Name of Institution', default="harvard") 

Se si desidera impostare dinamicamente un valore:

def __init__(self, *args, **kwargs): 

    super(form,self).__init(*args, **kwargs) 
    self.fields['extra_field'].initial = "harvard"