When a dictionary is passed to a Widget as the `attr` kwarg, to be used in
filling HTML attributes, this dictionary is mutated, so cannot be reused.
See below example to see a clear problem with this. Note how in the first
form, when printer as_p(), the second field (session_end) gets an incorrect
'type' HTML attribute. This was tested in django 1.6
from django import forms
class FormWithBug(forms.Form):
attrs = {'type':'time', 'required':'true'}
session_start = forms.TimeField(widget=forms.TimeInput(attrs= attrs))
session_end = forms.TimeField(widget=forms.TimeInput(attrs=attrs))
class FormWithoutBug(forms.Form):
session_start = forms.TimeField(widget=forms.TimeInput(attrs=
{'type':'time', 'required':'true'}))
session_end = forms.TimeField(widget=forms.TimeInput(attrs={'type':'time',
'required':'true'}))
FormWithBug().as_p()FormWithoutBug().as_p()
In [36]: FormWithBug().as_p()
Out[36]: u'<p><label for="id_session_start">Session start:</label> <input
id="id_session_start" name="session_start" required="true" type="time"
/></p>\n<p><label for="id_session_end">Session end:</label> <input
id="id_session_end" name="session_end" required="true" type="text" /></p>'
In [37]: FormWithoutBug().as_p()
Out[37]: u'<p><label for="id_session_start">Session start:</label> <input
id="id_session_start" name="session_start" required="true" type="time"
/></p>\n<p><label for="id_session_end">Session end:</label> <input
id="id_session_end" name="session_end" required="true" type="time" /></p>'
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/bcffb3b1-4fbb-4fd6-8ab0-ee1080fc42eb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.