#8436: Silent crash in forms rendering
---------------------------------+------------------------------------------
Reporter: stilldodge | Owner: nobody
Status: reopened | Milestone:
Component: Forms | Version: SVN
Resolution: | Keywords: errors, Form
Stage: Unreviewed | Has_patch: 0
Needs_docs: 0 | Needs_tests: 0
Needs_better_patch: 0 |
---------------------------------+------------------------------------------
Changes (by stilldodge):
* status: closed => reopened
* resolution: fixed =>
Comment:
With latest 8880 svn this still happens, this is based on current
ModelForm docs for overriding fields
{{{
class TestModel(models.Model):
errors = models.CharField(max_length=100)
tm = TestModel()
class TestForm(forms.ModelForm):
errors=forms.CharField(widget=forms.HiddenInput)
class Meta:
model = TestModel
tf=TestForm(tm)
tf.as_table()
In [9]: tf.as_table()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call
last)
C:\dev\scms\<ipython console> in <module>()
c:\django\django\forms\forms.py in as_table(self)
181 def as_table(self):
182 "Returns this form rendered as HTML <tr>s -- excluding the
<table></table>."
--> 183 return
self._html_output(u'<tr><th>%(label)s</th><td>%(errors)s%(field)s%(help_text)s</td></tr>',
u'<tr><td colspan=
"2">%s</td></tr>', '</td></tr>', u'<br />%s', False)
184
185 def as_ul(self):
c:\django\django\forms\forms.py in _html_output(self, normal_row,
error_row, row_ender, help_text_html, errors_on_separate_row)
137 def _html_output(self, normal_row, error_row, row_ender,
help_text_html, errors_on_separate_row):
138 "Helper function for outputting HTML. Used by as_table(),
as_ul(), as_p()."
--> 139 top_errors = self.non_field_errors() # Errors that should
be displayed above all fields.
140 output, hidden_fields = [], []
141 for name, field in self.fields.items():
c:\django\django\forms\forms.py in non_field_errors(self)
197 are none.
198 """
--> 199 return self.errors.get(NON_FIELD_ERRORS,
self.error_class())
200
201 def full_clean(self):
c:\django\django\forms\forms.py in _get_errors(self)
109 "Returns an ErrorDict for the data provided for the form"
110 if self._errors is None:
--> 111 self.full_clean()
112 return self._errors
113 errors = property(_get_errors)
c:\django\django\forms\forms.py in full_clean(self)
216 # Each widget type knows how to retrieve its own data,
because some
217 # widgets split data over several HTML fields.
--> 218 value = field.widget.value_from_datadict(self.data,
self.files, self.add_prefix(name))
219 try:
220 if isinstance(field, FileField):
c:\django\django\forms\widgets.py in value_from_datadict(self, data,
files, name)
168 of this widget. Returns None if it's not provided.
169 """
--> 170 return data.get(name, None)
171
172 def _has_changed(self, initial, data):
AttributeError: 'TestModel' object has no attribute 'get'
In [10]:
}}}
--
Ticket URL: <http://code.djangoproject.com/ticket/8436#comment:3>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---