2014-11-03 68 views
0

我試圖顯示一個廣播組,而不是默認的下拉菜單。我的形式如下:Django模型選擇字段不呈現爲單選按鈕

class ConditionForm(forms.ModelForm): 

    state = forms.ChoiceField(choices=STATE_TYPES, widget=forms.RadioSelect()) 

    class Meta: 
     model = Customer 
     fields = ('state',) 

我也試過這樣: 類ConditionForm(forms.ModelForm):

class Meta: 
     model = Customer 
     fields = ('state',) 
     widgets = { 
     'state': forms.RadioSelect(), 
    } 

我的模型看起來是這樣的:

STATE_TYPES = (
    (0, 'Type 2'), 
    (1, 'Type 1'), 
) 
class Customer(models.Model): 
    state = models.IntegerField(choices=STATE_TYPES, default=0, null=True) 
    created_at = models.DateTimeField(auto_now_add = True) 
    updated_at = models.DateTimeField(auto_now = True) 

我的模板看起來像:

{{ form.state }} 

這將輸出一個單獨的下拉菜單,而不是4個單選按鈕。

我在做什麼錯?

回答

0

你應該只輸出該字段,而不是遍歷其屬性。只是:

{{ form.state }} 
+1

我需要應用CSS給每個單選按鈕就是爲什麼我itereated。即使當我做{{form.state}}下拉菜單顯示,而不是一個廣播組。你知道爲什麼會發生這種情況嗎? – Atma 2014-11-03 18:59:04

1

我認爲有一個問題,在我的CSS和使用django小部件的調整。我從django小部件調整中刪除了添加css,並將它添加到表單中,並且工作正常。

像這樣:

state = forms.ChoiceField(choices=STATE_TYPES, widget=forms.RadioSelect(attrs={'class':'radio_1', 'name': 'name2'}))