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.
Comments