Django自定义表单模板

时间:2014-07-18 17:38:03

标签: python django forms django-templates

我是一个自定义模板,用于在我的Django网站上呈现我的表单。此代码呈现ChoiceFields:

<select id="{{ "id_"|add:field.html_name }}"
        class="form-control"
        name="{{ field.html_name }}">
    {% for id, name in field.field.choices %}
        <option value="{{ id }}"
            {% if field.value|default_if_none:"" == id %}
                selected="selected"
            {% endif %}
            >{{ name }}</option>
    {% endfor %}
</select>

当ChoiceField没有初始值时,此代码可以正常工作。如果我对表单进行求和,但表单中有错误(sp我回到我的表单,所有数据都在我提交的时候),正确的选择得到selected="selected"属性,所以它完美无缺。

但是当我在Django视图中设置表单的默认值时(正确地在表单&#c; init()函数中,如下所示:self.fields['card_type'].initial = self.card.card_type_id),这将停止工作。

如果我在我的模板中手动放置form.value变量,它会显示正确的整数。在id, name for-loop中,id值相同。这些没有任何其他东西的空白。但是代码不起作用,不等于self.fields['card_type'].initial = self.card.card_type_id条件的真实。

如果我修改上一个代码,打印idfield.value而不是{{name}},请执行以下操作:({{id}}-{{ field.value }}),以下HTML代码&#39 ;生成:

<select id="id_card_type" class="form-control" name="card_type">
    <option value="3">(3-2)</option>
    <option value="2">(2-2)</option>
    <option value="1">(1-2)</option>
</select>

id,即1,2和3!那是form.value,即2!但是没有selected="selected" ......为什么不工作?

谢谢!

0 个答案:

没有答案