How to assign a value to a django form field in the template?

I was wondering how you can assign a value to a django form field in the template.

I know that there is other ways to assign an initial value in django, but I need to assign the value in the template because the variable is only present in the template.

The way to do this with a normal html form would be this:

{% 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 %}

However, I need to use a django form.

I also know there is a way to assign a label to a field in the template, like this:

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

So my question is basically how you would go about doing the example above but instead of assigning a label, assign a value.


I've found a solution!

What I did was type the html manually as Daniel suggested and assigned the value that way.

For anyone who is wondering how I did it here is an example.


In a nut shell you DON'T do this in HTML (unless you want to manually create the form as you described doing), you do it in Python.

in forms.py you can set the initial property to define the default value of the field.

ex: name = forms.CharField(initial='class')

or dynamically in views.py you can use a dict .

ex: f = CommentForm(initial={'name': 'instance'})

Extended reference: https://docs.djangoproject.com/en/1.10/ref/forms/api/#s-dynamic-initial-values

链接地址: http://www.djcxy.com/p/25250.html

上一篇: 在Matlab中使用bar3时如何设置x和y值?

下一篇: 如何为模板中的django表单字段赋值?