我剛從Django 1.10更新到1.11.1。 在我的模板new_house_edit.html
我有以下幾點:Django 1.11水平選擇字段
{{ form.rating }}
models.py
包含以下內容:
class NewHouse(models.Model):
rating = models.IntegerField(choices=(
(1, "1"),
(2, "2"),
(3, "3"),
(4, "4"),
(5, "5"),
),
default=3
)
在forms.py
我曾經有以下幾點:
class HorizontalRadioRenderer(forms.RadioSelect.renderer):
def render(self):
return mark_safe(u'\n'.join([u'%s\n' % w for w in self]))
class NewHouseForm(forms.ModelForm):
class Meta:
model = NewHouse
fields = (
'rating',)
widgets={
"rating": forms.RadioSelect(renderer=HorizontalRadioRenderer),
}
這給了以下錯誤AttributeError: type object 'RadioSelect' has no attribute 'renderer'.
我試圖通過doin解決它g這是不工作的:
class HorizontalRadioSelect(forms.RadioSelect):
template_name = 'new_house_edit'
class NewHouseForm(forms.ModelForm):
class Meta:
model = NewHouse
fields = (
'rating',)
widgets={
"rating": "rating": forms.ChoiceField(widget=HorizontalRadioSelect, choices=(1, 2, 3, 4, 5)),
}
我現在得到錯誤AttributeError: 'ChoiceField' object has no attribute 'use_required_attribute'
。誰能幫我解決這個問題嗎?
Tim Graham回答了一個相關問題[https://groups.google.com/forum/#!topic/django-users/tlcXfeSVm00],這可能會有所幫助。 – raratiru