2016-06-04 4 views
1

Извините, что я очень новичок в Django. Я прочитал много ответов, но не могу заставить его работать. Я что-тоDjango Forms не может отображать радио кнопки

отсутствует Это мой forms.py

from django import forms 
    from .models import Post 
    from django.utils.translation import gettext as _ 



    class EventsForm(forms.ModelForm): 
    class Meta: 
     CHOICES=[('select1','select 1'), ('select2','select 2')] 
     model = Post 
     widgets = { 
      'title': forms.TextInput(attrs={'placeholder': _('form-title')}), 
      'type_id': forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect), 
     } 
     fields = ('title', 'type_id', 'post_date',) 

Я хочу иметь радио кнопки для TYPE_ID

я получаю ошибку

'ChoiceField' object has no attribute 'attrs' 

Можете ли вы объяснить, меня то, что я делаю неправильно :)

Спасибо

ответ

0

Это работает для меня!

class EventsForm(forms.ModelForm): 
     CHOICES=(('select1','select 1'), ('select2','select 2')) 
     type_id = forms.TypedChoiceField(choices=CHOICES, widget=forms.RadioSelect) 
     class Meta: 
     model = Post 
     fields = ('title', 'type_id', 'post_date',) 
+0

спасибо. Можете ли вы объяснить мне, в чем разница и способ таким образом работает? – user43506

+0

Причина «виджет» - это формы. RadioSelect not choiceField ... последнее поле является полем –

1

Вы вводите пустые поля формы и виджеты. То, что вы указываете в типе widgets, должно быть действительно виджетами.

widgets = { 
     'title': forms.TextInput(attrs={'placeholder': _('form-title')}), 
     'type_id': forms.RadioSelect(choices=CHOICES), 
    } 
Смежные вопросы