我有一个元组列表,我想在显示所有选项后从<select>
中选择一个元素。
我有两个问题:
当我用django打印它时,我无法正确打印我的元组列表,因为它没有显示正确的内容。这是我的清单的一部分:
ISO639 = [
('ab', 'Abkhaz'),
('aa', 'Afar'),
('af', 'Afrikaans'),
('ak', 'Akan'),
('sq', 'Albanian'),
('am', 'Amharic'),
('ar', 'Arabic'),
]
我收到了:
from ISO639 import ISO639 as languages
def index(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
handleUploadFile(request.POST['name'] + '.json', request.FILES['docfile'], request.POST['language'])
return HttpResponseRedirect(reverse('fraud.api.views.index'))
else:
form = UploadFileForm()
return render_to_response('api/index.html',
{'form': form, 'languages': languages},
context_instance=RequestContext(request))
显示如下:
<form action="{% url "upload" %}" method="post" enctype="multipart/form-data" id="api">
<select>
{% for key, value in languages %}
<option value={{ key }}> {{ value }}</option>
{% endfor %}
</select>
<p><input type="submit" value="Upload" /></p>
</form>
当我看到输出时,它只打印1个字符而不是选项列表中的完整单词。
我有一个带有attribut语言的表单,我不知道如何在该字段中存储该值。
class UploadFileForm(forms.Form):
language = forms.CharField(max_length = 512)
我确信有更好的方法可以做到这一点,我对django很新,并对任何建议持开放态度。
感谢。
答案 0 :(得分:2)
您不需要为模板添加逻辑。为什么不使用ChoiceField?有关文档,请参阅https://docs.djangoproject.com/en/dev/ref/forms/fields/#choicefield。
我不确定你的意思&#34; stock&#34;在你的第二个问题。您想将它存储在数据库中吗?如果是这样,你可能想要使用ModelForm。
答案 1 :(得分:0)
你可以这样实现:
ISO639 = (
('ab', ('Abkhaz')),
('aa', ('Afar')),
..............
..............
)
class UploadFileForm(forms.Form):
language = forms.ChoiceField(choices= ISO639)