This widget renders choices as submit buttons. This may be a better choice than radio buttons + submit sometimes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # imports
from django import forms
from django.utils.safestring import mark_safe
# exceptions
# classes and fonctions
class ChoiceSubmitWidget(forms.Widget):
"""A widget that render its choices as multiple submit buttons"""
def __init__(self, choices=[], attrs={}):
self.label = None
self.choices = choices
self.attrs = attrs
def render(self, name, value=None, attrs={}):
final_attrs = self.build_attrs(
self.attrs,
type="submit",
name=name,
)
flat_attrs = forms.widgets.flatatt(final_attrs)
out = u''
for value, label in self.choices:
out = out + u'<button%s value="%s">%s</button>' % (
flat_attrs, value, label)
return mark_safe(out)
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 6 months ago
Comments
Please login first before commenting.