我有一個分組類別字段。問題是我創建了一個搜索表單,但是當我嘗試在模板中將表單呈現給用戶時,它出錯了。帶有分組選擇字段的模板中的ModelForm
models.py
MEDIA_CHOICES = (
('Audio', (
('vinyl', 'Vinyl'),
('cd', 'CD'),
)
),
('Video', (
('vhs', 'VHS Tape'),
('dvd', 'DVD'),
)
),
('unknown', 'Unknown'),
)
category = models.CharField(max_length=20, choices=MEDIA_CHOICES, verbose_name=_(u'Category'))
forms.py(搜索)
class SearchingForm(forms.Form):
"Search Box"
search = forms.CharField(max_length=100, required=False, label=(_(u'Search')))
music_kind = forms.MultipleChoiceField(choices=MEDIA_CHOICES, required=False,
label=(_(u'Kind')),
widget=forms.CheckboxSelectMultiple(),
)
template.html
{{ form.search }}
{{ form.place_kind }}
我展示的形式這樣的用戶,這個問題是當我用瀏覽器渲染時,我有這樣的東西(每行都有一個複選框):
(('vinyl', 'Vinyl'), ('cd', 'CD'))
(('vhs', 'VHS Tape'), ('dvd', 'DVD'))
Unknown
我已經刪除了'widget = forms.CheckboxSelectMultiple()'屬性,但是我沒有複選框。那麼,我怎樣才能用複選框字段呢?
這是一個好主意,但我如何從數據庫中恢復數據。這應該在視圖中完成,作爲對數據庫的查詢? – beni
您需要使用ModelMultipleChoiceField,它具有queryset屬性來保存選項。然後,您可以使用CheckboxSelectMultiple來覆蓋該小部件。 – Brandon