Rendering radio-buttons with icons instead of labels

 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
28
29
30
31
32
33
34
35
36
# -*- coding: utf-8 -*-

from django import forms
from django.utils.translation import ugettext_lazy as _
from django.utils.safestring import mark_safe
from django.conf import settings


APPROVAL_CHOICES = (
  (1, mark_safe(_('<img src="%(media_url)simg/thumbs_up.gif" alt="approve" title="approve">' %
                  {'media_url': settings.MEDIA_URL, },
                  ))),
  (2, mark_safe(_('<img src="%(media_url)simg/thumbs_down.gif" alt="disapprove" title="disapprove">' %
                  {'media_url': settings.MEDIA_URL, },
                  ))),
  (0, mark_safe(_('<img src="%(media_url)simg/question_mark.gif" alt="undecided" title="undecided">' %
                  {'media_url': settings.MEDIA_URL, },
                  ))),
)


class HorizontalRadioRenderer(forms.RadioSelect.renderer):
    """renders horizontal radio buttons.
    found here:
    https://wikis.utexas.edu/display/~bm6432/Django-Modifying+RadioSelect+Widget+to+have+horizontal+buttons
    """

    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),
                                                         )

More like this

  1. Horizontal RadioSelect widget by gnrfan 2 months, 2 weeks ago
  2. RadioSelectWithHelpText by moxypark 1 year, 9 months ago
  3. Choice Submit Widget by fredbird 6 months, 2 weeks ago
  4. Multiple-Submit-Button Widget for Choice Field by Archatas 3 years, 9 months ago
  5. Django using admin horizontal filter in forms by crodjer 11 months ago

Comments

asinox (on May 15, 2010):

Nice, but what happen if the icon's are in database? Thanks

#

(Forgotten your password?)