доступ к данным формы в представлении

#django #python-3.x

#django #python-3.x

Вопрос:

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

 <form class="navbar-form" role="search" action="{% url 'my_url_name' %}" method="get">
 <div class="input-group add-on">
  <input class="form-control" placeholder="search" name="srch-term" id="srch-term" type="text">
  <div class="input-group-btn">
    <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
  </div>
</div>
</form>
  

Я использую эту форму для ее стиля, и я не могу создать этот стиль с помощью класса Form

Комментарии:

1. Единственные вещи, которые вы настроили в этом поле формы, — это заполнитель и класс управления формой, оба из которых тривиальны для выполнения в классе Form.

2. Я этого не знал. Я постараюсь изучить формы глубже. но как насчет ответа

3. Вы можете найти данные формы в request.GET

Ответ №1:

Вы можете получить доступ к данным формы в request.GET словаре (или, request.POST если это post-запрос) в вашем представлении. Например:

 srch_term = request.GET.get('srch-term')
  

Ответ №2:

Вы можете использовать объект QueryDict, который вы получаете с запросом :

 def myview(request):
    if request.method == "POST":
        data = request.POST
        print(data['foo'])  # <--Will print the value I entered into my form.
    [...]
  

Но будьте осторожны с этим: нет инструмента проверки, чтобы убедиться, что данные, которые вы получаете, правильно сформированы.