Я работаю на Django, и я должен знать, как я могу получить выбранное значение в forms.ChoiceField
Получение выбранного значения на Django forms.ChoiceField
forms.py
class FilterForm(forms.Form):
continent = forms.ChoiceField(choices=Select_continent())
я попытался с: views.py
def Select_continent():
db = MySQLdb.connect("localhost", "root", "aqw", "PFE_Project")
cursor = db.cursor()
sql = "SELECT Continent FROM myform_servercomponents"
try:
cursor.execute(sql)
results = cursor.fetchall()
continents = []
i=0
for row in results:
continents.append(('i',row[0]))
i+=1
except:
print "Error: unable to fetch data"
db.close()
return continents
def affiche_all(request, currency):
if request.method == 'POST':
form = FilterForm(request.POST)
if form.is_valid() :
Continent = form.cleaned_data['Continent']
Continent = dict(form.fields['Continent'])[Continent]
url = reverse('affiche_all', args=(), kwargs={'continent': Continent})
return HttpResponseRedirect(url)
но Continent
всегда возвращает последнее значение в ChoiceField
и то, что мне нужно, выбранный один.
любые предложения?
Какова функция или экземпляр континентов, на которые вы выбрали одинаковые значения в forms.py? Может иметь какое-то отношение к тому, что там делается. 'forms.cleaned_data ['Continent']' должно быть все, что вам нужно, чтобы получить выбранное значение. – Austin