如何为模板中的django表单字段赋值?

时间:2015-03-11 18:49:19

标签: python html django

我想知道如何为模板中的django表单字段赋值。

我知道还有其他方法可以在django中分配初始值,但是我需要在模板中分配值,因为变量只出现在模板中。

使用普通的html表单执行此操作的方法是:

{% for thing in things %}
  <p> {{ thing.content }} </p>
  <!-- Reply form -->
  <form>
    <input type="hidden" name="replyingto" value="{{ thing.number }}">
    <input type="text" label="Reply"></input>
  </form>
{% endfor %}

但是,我需要使用django表格。

我也知道有一种方法可以为模板中的字段分配标签,如下所示:

{{ form.non_field_errors }}
{{ form.field.errors }}
   <label for="{{ form.field.id_for_label }}"> field </label>
{{ form.field }}

所以我的问题基本上是你如何去做上面的例子而不是分配标签,而是分配一个值。


我找到了解决方案!

我所做的是手动输入html作为Daniel建议并以此方式分配值。

对于任何想知道我是怎么做的人来说,这是一个example

2 个答案:

答案 0 :(得分:4)

在坚果外壳中你不能用HTML做这件事(除非你想按照你的描述手动创建表格),你可以用Python来做。

<{1>}在initial中,您可以设置name = forms.CharField(initial='class')属性来定义字段的默认值。

ex:views.py

或动态dict您可以使用f = CommentForm(initial={'name': 'instance'})

ex:strings[i] = response[i].toString("utf8")

扩展参考:https://docs.djangoproject.com/en/1.10/ref/forms/api/#s-dynamic-initial-values

答案 1 :(得分:0)

您可以逐个字段手动渲染表单,然后使用 Django 模板插值渲染所有其他字段,但您可以手动渲染隐藏字段。例如

{% for thing in things %}
  <p> {{ thing.content }} </p>
  <!-- Reply form -->
  <form FORM_PARAMS_HERE >
    <div class="form-row">
        {{ form.other_form_field.errors }}
        {{ form.other_form_field.label_tag }} {{ form.other_form_field }}
    </div>
    ... (more form rows)
    <div class="form-row">
        <input type="hidden" name="replyingto" id="replyingto_id" value="{{ thing.number }}">
        <input type="text" label="Reply"></input>
    </div>
  </form>
{% endfor %}

我遇到了这个确切的问题,并在找到 this excellent and hard to find reference 后终于能够按照我想的那样解决它。