Changing Django Form Field Properties On Init
Join the DZone community and get the full member experience.Join For Free
// For changing a form field's properties when the form is // initialized. This snippet shows how to limit a query set // for a ModelChoiceField and how to add an attribute to an // html tag
from django import forms from mymodels import Group class MyForm(forms.Form): group=forms.ModelChoiceField(queryset=None) email=forms.EmailField() some_choices=forms.ChoiceField() junk=forms.CharField() def __init__(self,my_var,*args,**kwrds): super(MyForm,self).__init__(*args,**kwrds) self.fields['group'].queryset=Group.objects.filter(...) self.fields['email'].widget.attrs['size']='50' self.fields['email'].help_text='some text' self.fields['some_choices'].choices=[[x,x] for x in list_of_stuff] # I used this when I wanted to subclass a built-in form and I # wanted to remove this input self.fields['junk'].widget=forms.HiddenInput()
Django (web framework) Form (document) Property (programming)
Opinions expressed by DZone contributors are their own.