Другое решение (также без использования форм Django), которое я могу придумать, - это использовать Python dict
(или list
) для хранения всех ваших опций в вашем представлении:
import collections
DROP1_DICT = collections.OrderedDict(
(1, 'Regular'),
(2, 'Medium'),
)
def my_view(request):
...
if request.method == 'POST':
selected_value = request.POST['drop1']
selected_label = DROP1_DICT[selected_value]
print(selected_value)
print(selected_label)
else:
ctx = {
'drop1_dict': DROP1_DICT,
}
return render(request, 'my_template.html', ctx)
и рендерингаоснованный на этом шаблон:
<form method = "post" action = "{% url 'index' %}">
{% csrf_token %}
<select name = "drop1" >
{% for k, v in drop1_dict.items %}
<option value="{{ k }}">{{ v }}</option>
{% endfor %}
</select>
<input type="submit" value="Submit">
</form>
Конечно, если вы просто используете для этого форму django, тогда вся базовая обработка сделана для вас, и вы можете просто пропустить эту часть кода.