如何手动呈现其初始值设置的表单字段?

时间:2010-10-14 03:37:26

标签: python django django-forms form-fields

我正在尝试手动渲染表单的字段,以便我的设计人员可以操作HTML中的输入元素,而不是在Python源代码中挣扎。

即。而不是像这样声明表单字段......

            {{ form.first_name }}   

..我其实是......

            <label for="id_first_name">Your name:</label>
            <input type="text" value="{{  form.first_name.somehow_get_initial_value_here }}" name="first_name" id="id_first_name" class="blabla" maxlength="30" >
            {% if form.first_name.errors %}<span>*** {{ form.first_name.errors|join:", " }}</span>{% endif %}

问题是似乎没有办法在第二种方法中获得字段的初始值。 {{form.first_name}} 语句会使用正确的初始值呈现输入元素,但是当您使用 {{form.first_name.initial_value}} 字段时,无论如何都不会想手动渲染表单。

2 个答案:

答案 0 :(得分:4)

关于这个问题有一个有趣的长期票。有一些示例代码可以在评论中实现模板过滤器,以满足您的需求:

http://code.djangoproject.com/ticket/10427

答案 1 :(得分:0)

<input value="{{form.name.data|default_if_none:'my_defaut_value'}}" ... />

您必须使用default_if_none,因为绑定字段的隐含值不会存储在data. More details here