Я знаю его основы, но я застрял из-за этого. Интернет мне не помог.
Это фрагмент моего представления на основе класса 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.
Скажите, пожалуйста, в чем причина этого.
1 ответ
После 'search_text '
в атрибуте name <input.../>
в вашем шаблоне есть завершающий пробел:
<input type="..." class="..." id="..." name="search_text "
^
И вы заметите, что он отображается в QueryDict с конечным пробелом. Вы должны удалить пробел.
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.