首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django POST方法没有从HTML接收所有输入字段

Django POST方法没有从HTML接收所有输入字段
EN

Stack Overflow用户
提问于 2022-09-30 21:37:14
回答 2查看 52关注 0票数 0

我想寻求帮助。我正在创建一个基于web的应用程序,当我尝试从HTML表单获取数据并通过Django中的POST方法接收数据时,我遇到了困难。它只从一个字段中提取数据,我非常感谢您帮助我理解为什么它不从其他字段中只从位置字段提取信息。非常感谢!

代码语言:javascript
复制
HTML = create-request.html

        <form action="{% url 'save_request' %}" id="checklistForm" name="checklistForm" enctype="multipart/form-data" method="POST">
          {% csrf_token %}
          <section id="step-1" class="form-step">
            <div class="mt-3">
              {% include 'home/1_resource-request.html' %}
            </div>
          </section>
        </form>
代码语言:javascript
复制
HTML = home/1_resource-request.html

{% block stylesheets %}{% endblock stylesheets %} {% block content %}

<div class="pcoded-content">
  <div class="pcoded-inner-content">
    <div class="main-body">
      <div class="page-wrapper">
        <div class="row">
          <div class="col-sm-12">
            <div class="card">
              <div class="card-header">
                <h5>Resource Request</h5>
              </div>
              <div class="card-body">
                <div class="row">
                  <div class="col-md-6">
                    <form>
                      <div class="form-group">
                        <label for="checklistID">Checklist Number</label>
                        <input type="text" class="form-control" id="checklistID" name="checklistnum" placeholder="123456" disabled/>
                      </div>
                      <div class="form-group">
                        <label for="location_ID">CMPA Location</label>
                        <select class="form-control" id="location_ID" name="location">
                          <option selected>Select</option>
                          <option>Brazil</option>
                          <option>Canada</option>
                          <option>Mexico</option>
                          <option>SSA</option>
                          <option>United States</option>
                        </select>
                      </div>
                    </form>
                  </div>
                  <div class="col-md-6">
                    <form>
                      <div class="form-group">
                        <label for="support_id">CMPA Support Needed</label>
                        <select class="form-control" id="support_id" name="support">
                          <option selected>Select</option>
                          <option>Both</option>
                          <option>PMA - Financial Management</option>
                          <option>PMO - Project Administration</option>
                        </select>
                      </div>
                      <div class="form-group">
                        <label for="band_pma_id">Band (PMA)</label>
                        <select class="form-control" id="band_pma_id" name="band_pma">
                          <option selected>Select</option>
                          <option>4</option>
                          <option>5</option>
                          <option>6</option>
                          <option>7</option>
                        </select>
                        <small id="textInfo1" class="form-text text-muted">There is no B4 for US and CA - in progress.</small>
                      </div>
                      <div class="form-group">
                        <label for="band_pmo_id">Band (PMO)</label>
                        <select class="form-control" id="band_pmo_id" name="band_pmo">
                          <option selected>Select</option>
                          <option>4</option>
                          <option>5</option>
                          <option>6</option>
                          <option>7</option>
                        </select>
                        <small id="textInfo2" class="form-text text-muted"
                          >There is no B4 for US and CA - in progress.</small
                        >
                      </div>

                      <div class="mt-3">
                        <button class="button btn-navigate-form-step" type="button" step_number="2">Next</button>
                        <button class="button2 btn btn-outline-primary " type="submit">Save</button>
                      </div>

                    </form>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

    {% endblock content %}
代码语言:javascript
复制
Django/Python = views.py

def save_request(request):
    #print(request.POST)
    if request.method == 'POST':
        context = {}
        location = request.POST.get('location', None)
        support = request.POST.get('support', None)
        band_PMA = request.POST.get('bandPMA', None)
        band_PMO = request.POST.get('bandPMO', None)
        ippf = request.POST.get('ippf', None)
        print(location, support, band_PMA, band_PMO, ippf)
    return render(request, 'home/create-request.html', context=context)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-30 21:44:37

该html定义了许多不同的表单。第一个表单有location输入元素,第二个表单有support输入元素,依此类推。

一次只能提交一份表格。默认情况下,它是页面上的第一个表单,因此您只能看到location元素。

我认为您需要重写html,使其只有一个表单。

票数 0
EN

Stack Overflow用户

发布于 2022-09-30 21:46:10

那是因为你有很多标签。

您只需要保留一个,包装您的包含的那个,那么就这样做:

代码语言:javascript
复制
<form action="{% url 'save_request' %}" id="checklistForm" name="checklistForm" enctype="multipart/form-data" method="POST">
      {% csrf_token %}
      <section id="step-1" class="form-step">
        <div class="mt-3">
          {% include 'home/1_resource-request.html' %}
        </div>
      </section>
    </form>

而这一点:

代码语言:javascript
复制
 HTML = home/1_resource-request.html

{% block stylesheets %}{% endblock stylesheets %} {% block content %}

<div class="pcoded-content">
  <div class="pcoded-inner-content">
    <div class="main-body">
      <div class="page-wrapper">
        <div class="row">
          <div class="col-sm-12">
            <div class="card">
              <div class="card-header">
                <h5>Resource Request</h5>
              </div>
              <div class="card-body">
                <div class="row">
                  <div class="col-md-6">
                    
                      <div class="form-group">
                        <label for="checklistID">Checklist Number</label>
                        <input type="text" class="form-control" id="checklistID" name="checklistnum" placeholder="123456" disabled/>
                      </div>
                      <div class="form-group">
                        <label for="location_ID">CMPA Location</label>
                        <select class="form-control" id="location_ID" name="location">
                          <option selected>Select</option>
                          <option>Brazil</option>
                          <option>Canada</option>
                          <option>Mexico</option>
                          <option>SSA</option>
                          <option>United States</option>
                        </select>
                      </div>
                    
                  </div>
                  <div class="col-md-6">
                    
                      <div class="form-group">
                        <label for="support_id">CMPA Support Needed</label>
                        <select class="form-control" id="support_id" name="support">
                          <option selected>Select</option>
                          <option>Both</option>
                          <option>PMA - Financial Management</option>
                          <option>PMO - Project Administration</option>
                        </select>
                      </div>
                      <div class="form-group">
                        <label for="band_pma_id">Band (PMA)</label>
                        <select class="form-control" id="band_pma_id" name="band_pma">
                          <option selected>Select</option>
                          <option>4</option>
                          <option>5</option>
                          <option>6</option>
                          <option>7</option>
                        </select>
                        <small id="textInfo1" class="form-text text-muted">There is no B4 for US and CA - in progress.</small>
                      </div>
                      <div class="form-group">
                        <label for="band_pmo_id">Band (PMO)</label>
                        <select class="form-control" id="band_pmo_id" name="band_pmo">
                          <option selected>Select</option>
                          <option>4</option>
                          <option>5</option>
                          <option>6</option>
                          <option>7</option>
                        </select>
                        <small id="textInfo2" class="form-text text-muted"
                          >There is no B4 for US and CA - in progress.</small
                        >
                      </div>

                      <div class="mt-3">
                        <button class="button btn-navigate-form-step" type="button" step_number="2">Next</button>
                        <button class="button2 btn btn-outline-primary " type="submit">Save</button>
                      </div>

                    
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

    {% endblock content %}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73914175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档