Я боролся с формами в Django. Можно получить значение из cleaned_data, но оно возвращает совершенно другое число. Например, у меня есть 4 значения на выбор (2,3,4,5). Если я выберу 2, он даст cleaned_data.get (name_of_form_field), возвращает 5. И так далее.
class PopulationForm(forms.Form):
districts = forms.ModelChoiceField(queryset=Population.objects.order_by('districtid').values_list('districtid',flat=True).distinct())
Для пользователя есть 4 варианта: 2,3,4,5. Если пользователь выбирает 2, он возвращает 5 и так далее. Я не уверен, что происходит. Вот мой views.py:
if request.method == 'POST':
form = PopulationForm(request.POST)
if form.is_valid():
print(form.cleaned_data.get('districts'))
return HttpResponse(form.cleaned_data.get('districts'))
Вот мой шаблон:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django Forms Tutorial</title>
</head>
<body>
<h2>Django Forms Tutorial</h2>
<form action="/display/" method="post">
{% csrf_token %}
<table>
{{form.as_table}}
</table>
<input type="submit" value="Submit" />
</form>
</body>
</html>