Django认为没有获得post param

时间:2017-07-03 17:31:11

标签: python django

我知道它的基本但我因此而陷入困境我上网并没有帮助我。

这是我基于django类的视图(django 1.7)的片段

  def post(self, request,*args, **kwargs):
        context =  RequestContext(request, {})
        print request.POST
        print request.POST['search_text']

在html中

  <form method="post" action="{% url 'storage_place' %}">{% csrf_token %}
    <div class="container">
      <div class="row">

        <div class="col-md-4">
          <div class="form-group">
            <input type="text" class="form-control" id="search_text" name="search_text " placeholder="Key words...">
          </div>
        </div>
        <div class="col-md-3">
          <div class="s_btngroup">
            <div class="col-md-6 col-sm-4 col-xs-5">
              <input type="submit" class="btn ft_default-btn-red ft_primary-btn-mini" value="Search" /> 
            </div>

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

当我这样做时

print request.POST

正在打印

QueryDict: {u'csrfmiddlewaretoken': [u'GInHZCd4UK8oWjs2txgppCNEof3VC8zy'], u'search_text ': [u'defrghj']}

但是当我做下一行时

print request.POST['search_text']

我收到多值字典错误。

请告诉我这是什么原因。

1 个答案:

答案 0 :(得分:1)

模板中'search_text '名称属性中的<input.../>后面有一个尾随空格:

<input type="..." class="..." id="..." name="search_text "
                                                        ^

你会注意到它出现在带有尾随空格的QueryDict中。你应该删除空格。