Im пытается создать простую форму в django, которая принимает выпадающее значение и текст от пользователя. Текстовое значение, введенное пользователем, передается и Im умеет печатать его на консоли. Но выпадающее значение отображается как пустое даже после того, как пользователь выбирает допустимый вариант. Может кто-нибудь, пожалуйста, помогите мне решить это.Выпадающие значения не передаются в django
views.py
def product(request):
if request.method == 'POST':
form = ProductForm(request.POST)
if form.is_valid():
print ('selected dropdown value from the form is: ',form.cleaned_data['selection'])
print('entered text is: ',form.cleaned_data['mytext'])
#return render_to_response('loggedin.html',{'full_name' : request.user.username,'my_selection' :request.selection})
else:
print ('invalid selection')
return render_to_response('loggedin.html',{'full_name' : request.user.username,'my_selection' : 'invalid'})
else:
form = ProductForm()
args = {}
args.update(csrf(request))
args['form'] = ProductForm()
print args
return HttpResponseRedirect('/accounts/selected')
forms.py
class ProductForm(forms.Form):
selection = forms.ChoiceField(required=False)
mytext = forms.CharField(required=True)
loggedin.html
{% extends "base.html" %}
{% block content %}
<h2> Hi {{full_name}} you are logged in!!</h2>
<form action="/accounts/product/" method="post">{% csrf_token %}
{{ form.errors }}
{{ form.non_field_errors }}
<label>Select a product:</label>
<select name="selection">
<option selected="select" disabled>--select one--</option>>
<option value="{{Iphone}}">Iphone</option>
<option value="{{Samsung}}">Samsung</option>
<option value="{{Motorola}}">Motorola</option>
<option value="{{Blackberry}}">Blackberry</option>
<option value="{{Nokia}}">Nokia</option>
</select>
<br/>
<label>Text: </label>
<input name="mytext" type="text"><br/>
<input type="submit" value="select">
</form>
<p>Click <a href="/accounts/logout/" here </a> to logout </p>
<p>Your selected product is: {{my_selection}}</p>
{% endblock %}
urls.py
url(r'^accounts/product/$', 'mysite.views.product'),
url(r'^accounts/selected/$', 'mysite.views.selected'),
Вы должны использовать Django ChoiceField для этого. См. Http://stackoverflow.com/questions/24403075/django-choicefield – Dillon