我在尝试获取一个简单的选择字段以将其选项返回到我的应用程序中的html页面时遇到问题。我一直在研究其他几个问题1,2和一些在线教程,但似乎无法做到正确。
我当前的代码不返回下拉列表,只返回提交按钮。
最理想的情况是,我想在下拉列表中返回国家/地区,并选择将其设为必填字段。
我能够使用models.Model使用这种方法返回类似的视图,但似乎无法从forms.Form工作中获取ChoiceField。
非常感谢任何帮助,谢谢。
models.py
from django import forms
class CountryChoiceTwo(forms.Form):
IRELAND = 'IR'
ENGLAND = 'EN'
FRANCE = 'FR'
SCOTLAND = 'SC'
WALES = 'WA'
ITALY = 'IT'
COUNTRY = (
(IRELAND, "Ireland"),
(ENGLAND, "England"),
(FRANCE, "France"),
(SCOTLAND, "Scotland"),
(WALES, "Wales"),
(ITALY, "Italy"),
)
origin = forms.ChoiceField(widget=forms.Select(), choices=COUNTRY, initial= IRELAND)
def __unicode__(self):
return self.origin
views.py
from books.models import CountryChoiceTwo
def ContactForm(request):
form = CountryChoiceTwo(initial={'origin':COUNTRY[1]})
return render(request, 'country_choice.html', {'form': form} )
country_choices.html
<h2>What country are you from?</h2>
<form action="" method="post">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Vote" />
</form>
答案 0 :(得分:0)
COUNTRY
未在视图函数的范围内定义。
您可以在表单中添加COUNTRY
作为前缀:
def ContactForm(request):
form = CountryChoiceTwo(initial={'origin': CountryChoiceTwo.COUNTRY[1]})
return render(request, 'country_choice.html', {'form': form} )