您有一个选择字段
class PropertyReportForm(forms.Form):
property = forms.ChoiceField(widget = forms.RadioSelect,required = False)
def __init__(self,*args,**kwargs):
properties = kwargs.pop('properties')
property_choice = []
for property1 in properties:
index = (property1.id,"Name :"+property1.name+" Area:"+str(property1.area)+" "+property1.image)
property_choice.append(index)
super( PropertyReportForm, self).__init__(*args, **kwargs)
self.fields['property'].choices = property_choice
现在在显示时我希望它显示
我该怎么做? 模板代码类似于我想要的。这不起作用。但我想要这个
{% for field in propertyreportform %}
{{ field }} <img src="/media/{{ field.image }}" />
{% endfor %}
答案 0 :(得分:1)
要解决此问题,您基本上有三个选项:
创建自己的渲染器,并将其用作ChoiceField
的参数,遗憾的是,您需要从头创建它,因为django不允许您简单地覆盖RadioFieldRenderer
类。 https://github.com/django/django/blob/1.5.4/django/forms/widgets.py#L693
只需循环选择并使用手动创建的无线电输入标签,无需进行大量验证,检索所选项目或模型对象也非常简单。
最简单且不太推荐的方法可能是将整个图像标记包含在标签字符串中(使用设置来获取媒体网址部分)。