为什么在表单提交中排除了Django模板中的手动呈现输入?

时间:2016-03-18 16:55:47

标签: python html django django-forms django-templates

在我的Django模板中,{{ form.ietf_tag|bootstrap }}呈现为

Django渲染

enter image description here

<div class="form-group">
  <label class="control-label  " for="id_ietf_tag">IETF tag</label>
    <div class=" ">
      <input class=" form-control" id="id_ietf_tag" maxlength="12" name="ietf_tag" type="text">
    </div>
</div>

我想在<button>之前插入一个<input>,所以我想我只是将呈现的HTML复制,粘贴和修改到它看起来像这样的地方:

手动渲染

enter image description here

<div class="row">
  <div class="col-md-6">
    <form action="" method="post">
      {% csrf_token %}

      <!-- Manually render ietf_tag input -->
      <div class="form-group flex {% if form.ietf_tag.errors %}has-error{% endif %}">
        <label for="{{ form.ietf_tag.id_for_label }}" class="control-label">{{ form.ietf_tag.label }}</label>
        <div class=" ">
          <button class="btn btn-primary get-code" data-url="{% url 'ajax_temporary_code' %}">Get Code</button>
          <input id="{{ form.ietf_tag.id_for_label }}" class="form-control temp-code required" maxlength="12" name="{{ form.ietf_tag.html_name }}1" type="text" disabled value="{{ form.ietf_tag.value|default:"-" }}">
        </div>
        <span class="help-block">{{ form.ietf_tag.errors.0 }}</span>
      </div>
      <!-- -->

      {{ form.common_name|bootstrap }}
      {{ form.native_name|bootstrap }}
      {{ form.direction|bootstrap }}
      {{ form.comment|bootstrap }}
      <button type="submit" class="btn btn-primary pull-right">Create</button>
    </form>
  </div>
</div>

问题

<form>提交时,其他所有内容都提交 ietf_tag,我手动呈现。

  

QueryDict:{u&#39; common_name&#39;:[u&#39;&#39;],u&#39;评论&#39;:[u&#39;&#39;],u&#39; csrfmiddlewaretoken&#39;:[u&#39; G6UP5DxrSHHPPQzj6SbxM06Hh8yT9ksm&#39;],u&#39;指导&#39;:[u&#39; l&#39;],u&#39; native_name&#39;:[u&#39; &#39;]}

我仔细检查name属性,这是正确的。使用Django渲染输入没有问题。

为什么会这样?

也许我可以直接在模板中复制,粘贴和修改HTML,从而完成相同的结果?

编辑:在HTML代码中添加更多上下文

1 个答案:

答案 0 :(得分:0)

傻傻的我。 disabled中的<input>属性是导致问题的原因。我删除了它,现在价值包含在表单提交中。

经验教训

如果您的<input>disabled,则表单不会提交该值。