Я знаю его основы, но я застрял из-за этого. Интернет мне не помог.

Это фрагмент моего представления на основе класса 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']

Я получаю многозначную ошибку dict.

Скажите, пожалуйста, в чем причина этого.

0
Django Man 3 Июл 2017 в 20:31

1 ответ

Лучший ответ

После 'search_text ' в атрибуте name <input.../> в вашем шаблоне есть завершающий пробел:

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

И вы заметите, что он отображается в QueryDict с конечным пробелом. Вы должны удалить пробел.

1
Moses Koledoye 3 Июл 2017 в 20:32