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()
)
Comments