Как решить проблему пустой страницы после размещения формы?
Я хочу отправить базовую форму в views. Я создал все, что нужно, но когда я отправляю сообщение, оно не возвращает пустую страницу. Это моя форма, а app:reports - та же страница с формой, потому что я хочу вернуть ту же страницу. Мне нужны значения year_one и year_two.
<form method="post" action="{% url 'app:reports' %}">
{% csrf_token %}
<label for="year_one">Select year 1:</label>
<select id="year_one" name="year_one">
{% for case in query_trend %}
<option value="{{case.date_created__year}}" >{{case.date_created__year}}</option>
{% endfor %}
</select>
<label for="year_two">Select year 2:</label>
<select id="year_two" name="year_two">
{% for case in query_trend %}
<option value="{{case.date_created__year}}">{{case.date_created__year}}</option>
{% endfor %}
</select>
<button onclick="test()">click</button>
</form>
И это мое мнение
if self.request.method == 'POST':
year_one = self.request.GET.get('year_one')
year_two = self.request.GET.get('year_two')
return HttpResponseRedirect('fdm:outstanding_reports')
Что я должен сделать для использования этих значений в представлениях?
Предположим, что метод test() вашей кнопки успешно отправляет форму... Если вы передаете запрос вашему представлению, т.е.
def reports(request):
Тогда вы можете обратиться к размещенным значениям year_one и year_two следующим образом:
if request.method == 'POST':
year_one = request.POST.get('year_one')
year_two = request.POST.get('year_two')
(GET - это когда вы отправляете значения, содержащиеся в URL, например, page?year_1=1975&year_2=1300, POST - когда это происходит в фоновом режиме. Форма обычно использует только один или другой способ, поэтому ваша версия, вероятно, не получала никаких значений. Смущает то, что вы также используете строчную '.get()' для получения значений POST)