29👍
✅
You have not passed any data to the form, so it is not valid. The instance argument is not used to set the form data, just the initial data.
7👍
This is a humble attempt to provide a little background for Daniel Roseman’s answer above.
As you can see in the source, BaseForm.is_valid()
does the following:
return self.is_bound and not self.errors
So, if is_valid()
returns False
, even though there are no errors, then is_bound
must be False
.
Now, the value for is_bound
is assigned in BaseForm.__init__()
(source):
self.is_bound = data is not None or files is not None
From the forms documentation:
A Form instance is either bound to a set of data, or unbound.
- If it’s bound to a set of data, it’s capable of validating that data and rendering the form as HTML with the data displayed in the HTML.
- If it’s unbound, it cannot do validation (because there’s no data to validate!), but it can still render the blank form as HTML.
Also note that errors
is a property, which calls the full_clean()
method (source), which does the actual validation.
👤djvg
- Django, REST and Angular Routes
- Django docker – could not translate host name "db" to address: nodename nor servname provided, or not known
- Django vs. Pylons
- Change default Django REST Framework home page title
Source:stackexchange.com