小编Hel*_*bea的帖子

如何手动渲染表单选择

我有form.py

SELECT_PRODUCT = [
    ('item1', 'item1'),
    ('item2', 'item2'),
    ('item3', 'item3'),
    ('item4', 'item4'),
]

class OrderBonus(forms.Form):
    select_product = forms.CharField(widget=forms.Select(choices=SELECT_PRODUCT ))
Run Code Online (Sandbox Code Playgroud)

在HTML中,我需要单独渲染每个选项:

<select name="{{ form_bonus.select_product .name }}">
    <option value="{{form_bonus.select_product.field.choice.0}}">{{form_bonus.select_product.field.choice.0}}</option>
    <option value="{{form_bonus.select_product.field.choice.1}}">{{form_bonus.select_product.field.choice.1}}</option>
    <option value="{{form_bonus.select_product.field.choice.2}}">{{form_bonus.select_product.field.choice.2}}</option>
 </select>
Run Code Online (Sandbox Code Playgroud)

我尝试不同的方式:1)form_bonus.select_product.field.choice.0 2)form_bonus.select_product.field.choice.[0] 3)form_bonus.select_product.field.choice.("0")

我尝试迭代:

{% for choice in form_bonus.select_product.field.choices %}
    {{ choice }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

要么

{% for value, text in form_bonus.select_product.field.choices %}
    {{ value}} - {{ text }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何覆盖Select Widget以使用每个选项: form_bonus.select_product.field.choice.0ect.

Python 3.5.2和Django 1.10

django django-widget

4
推荐指数
1
解决办法
2809
查看次数

标签 统计

django ×1

django-widget ×1