2

我正在尝试手动呈现表单的字段,以便我的设计师同事可以在 HTML 中操作输入元素,而不是在 Python 源代码中苦苦挣扎。

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

            {{ 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 }}字段这样的东西。

4

2 回答 2

4

关于这个问题有一张有趣的长期票。在注释中有实现模板过滤器的示例代码,应该可以满足您的需要:

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

于 2010-10-16T16:59:19.573 回答
0
<input value="{{form.name.data|default_if_none:'my_defaut_value'}}" ... />

您将不得不使用default_if_none,因为绑定字段的隐式值不会存储在data. 此处的更多详细信息中

于 2010-10-14T12:03:49.107 回答