Not sure if it should be called a bug or not.... from a quick look at
the source code (django/newforms/forms.py) it is expected behavior.
When a form is initialize, it determines if it is bound (has data) or
unbound (has no data)
self.is_bound = data is not None
Because you are not providing data when the form is initialized, it
determines that it is unbound and will take a shortcut during
cleaning/validation.
It would be possible to promote is_bound to a Form property to do
on-demand determination of bindedness (?) rather than determining it
at instantiation.
I'm forwarding this to the developers list to see if anyone over there
has any thoughts.
- Ben