2017-11-17 4 views
0

Ich versuche, eine radioselect horizontal ausrichten zu tun und erhalte ich folgende Fehlermeldung: Typ Objekt ‚RadioSelect‘ hat kein Attribut ‚Renderer‘Typ Objekt ‚RadioSelect‘ hat kein Attribut ‚Renderer‘

Was ich bin falsch machen?

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

Antwort

1

Sie versuchen forms.RadioSelect.renderer statt forms.RadioSelect zu erben. forms.RadioSelect wird nicht instanziiert, so dass das Attribut nicht vorhanden ist. Sie erhalten also einen Attributfehler.

from django.utils.safestring import mark_safe 

class HorizontalRadioRenderer(forms.RadioSelect): 
    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 
      ), 
     ) 
Verwandte Themen