0

嗨有一个选择字段

   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 %}
4

1 回答 1

1

要解决这个问题,您基本上有三个选择:

  1. 创建您自己的渲染器,并将其用作 的参数ChoiceField,不幸的是您需要从头开始创建它,因为 django 不允许您简单地覆盖RadioFieldRenderer类。https://github.com/django/django/blob/1.5.4/django/forms/widgets.py#L693

  2. 只需循环您的选择并使用手动创建的单选输入标签,无需进行大量验证,检索所选项目或模型对象也很简单。

  3. 最简单且不太推荐的方法是将整个图像标签包含在标签字符串中(使用设置获取媒体 url 部分)。

于 2013-09-23T16:19:16.163 回答