I recently needed an easy way to add different input types to form fields based on the type of input. So, I created a widgets.py file and added varying input classes to meet my needs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | from django.forms.widgets import TextInput, DateInput, DateTimeInput, TimeInput
class MyEmailInput(TextInput):
input_type = 'email'
class MyNumberInput(TextInput):
input_type = 'number'
class MyTelephoneInput(TextInput):
input_type = 'tel'
class MyDateInput(DateInput):
input_type = 'date'
class MyDateTimeInput(DateTimeInput):
input_type = 'datetime'
class MyTimeInput(TimeInput):
input_type = 'time'
...
from django.contrib.localflavor.us.forms import USPhoneNumberField
from my.contrib.forms.widgets import *
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
self.fields['return_date'].widget = MyDateInput(attrs={'class':'date'})
self.fields['passenger_count'].widget = MyNumberInput(attrs={'min':0})
self.fields['email'].widget = MyEmailInput()
phone = USPhoneNumberField(
required=False,
help_text=u'Phone numbers must be in XXX-XXX-XXXX format',
label=u'Phone Number',
widget=MyTelephoneInput()
)
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
- Help text hyperlinks by sa2812 1 year, 7 months ago
Comments
Please login first before commenting.