Opened 8 years ago
Closed 8 years ago
#28060 closed New feature (wontfix)
Add the horizontal radio selection renderer
Reported by: | Musen | Owned by: | Musen |
---|---|---|---|
Component: | Forms | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | yes |
Needs tests: | yes | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I propose to add the render for horizontal radio selection. When a set of choices is rendered into a radio selection list, Django will list the radio selection vertically by default. People come to trouble when they want to make the radio list horizontal.
I propose to add a Horizontal radio selection render that is similar to
from django.utils.safestring import mark_safe class HorizontalRadioRenderer(forms.RadioSelect.renderer): def render(self): return mark_safe(u'\n'.join([u'%s\n' % w for w in self])) class ApprovalForm(forms.Form): approval = forms.ChoiceField(choices=APPROVAL_CHOICES, initial=0, widget=forms.RadioSelect(renderer=HorizontalRadioRenderer), )
This could as solve ticket #28059.
PS. The code for HorizontalRadioRenderer
seems to be a folklore on the internet for years, it can be found on *stackoverflow and *UTexas Wiki.
Change History (4)
comment:1 by , 8 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 8 years ago
Component: | Uncategorized → Forms |
---|---|
Needs documentation: | set |
Needs tests: | set |
Type: | Uncategorized → New feature |
Version: | 1.11 → master |
comment:3 by , 8 years ago
comment:4 by , 8 years ago
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
I think #28059 will be fixed by restoring the CSS classes on the <ul>
that were there before 1.11. Presumably the same solution could be used in other apps. The code in the ticket description no longer words after the introduction of template-based widget rendering in Django 1.11.
Isn't this something that can be achieved by styling the list elements to be displayed horizontally instead?
Just wanted to say I don't think that stripping all the markup is the way to go here.