我想知道如何为模板中的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。
答案 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 后终于能够按照我想的那样解决它。