#28672 closed Bug (invalid)
CheckboxSelectMultiple does not correctly bind to the form attribute passed in when rendered outside its containing form
Reported by: | Dylan Young | Owned by: | nobody |
---|---|---|---|
Component: | Forms | Version: | 1.8 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
This means that POSTing the form does not submit the accompanying selected data.
This seems to be an issue with attrs={'form': 'theform'}
not being passed through to the underlying checkbox inputs.
SelectMultiple behaves as expected (submitting with the form).
Minimal (inefficient) Example (must be included on a page with a form named 'theform' to see the problematic POST):
class UserSelectForm(Form): selected_users = MultipleChoiceField( choices=[('ex', 'Example'), ('ex2', 'Example2')], initial='ex', widget=CheckboxSelectMultiple(attrs={'form': 'theform'}), required=True)
Not sure if this is fixed in Django>1.8 as I have found no other reference to the bug.
Change History (6)
comment:1 by , 7 years ago
Description: | modified (diff) |
---|
comment:2 by , 7 years ago
comment:3 by , 7 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
On both Django master and 1.8.x, I see form="theform"
in the rendered HTML of both checkbox inputs. Please provide more details (a sample project would be nice) if you can reproduce your problem with Django master (or at least 1.11.x or 2.0 alpha).
comment:4 by , 7 years ago
Hmmm... I'll dig deeper. Maybe this is an issue with crispy-forms that needs to be submitted.
As for your other note, this is in fact a data loss bug: every bit of data in that CheckboxSelectMultiple is lost on submit, barring an additional layer that saves dirty data in the form client-side for recovery.
comment:5 by , 7 years ago
Confirmed that it's an issue with crispy-forms==1.5.2 and not Django. Thanks!
comment:6 by , 7 years ago
Resolution: | worksforme → invalid |
---|
Please try to confirm bugs on Django master (or at least on the latest released version) instead of reporting bugs for Django 1.8. Django 1.8 only receives fixes for security and data loss issues at this point.