2013-08-20 159 views
0

我確信我的django/python代碼中有一個非常簡單的錯誤。基本上我正在嘗試(現在)簡單地製作一個具有幾個下拉列表和文件上傳功能的HTML表單。我有下面的代碼片段:ValueError with python and django

views.py:

def convert(request): 
if request.POST: 
    form = ConvertForm(request.POST,request.FILES) 

    if form.is_valid(): 
     form.save() 

     # Change this to some result page,             
     # but for now, just see that we got the file           
     return HttpResponseRedirect('/convert/convert') 
else: 
    form = ConvertForm() 

args = {} 
args.update(csrf(request)) 
args['form']=form 

return render_to_response('convert.html',args) 

在convert.html:

{% block content %} 
<form action="/convert/convert/" method="post" enctype="multipart/form-data">{% csrf_token %} 
<ul> 
    {{ form.as_ul }} 
</ul> 
<input type="submit" name="submit" value="Convert"> 
</form> 
{% endblock %} 

,並在我的forms.py:

from django import forms 

class ConvertForm(forms.Form): 
    ff_from = forms.ChoiceField(choices=('a')) 
    ff_to = forms.ChoiceField(choices=('b')) 
    file = forms.FileField(max_length=200) 

的我得到的錯誤如下:

ValueError異常在/轉換/轉換/
需要超過1點的值來解壓
請求方法:GET
Django的版本:1.5.2
異常類型:ValueError異常
異常值:
需要超過1倍的值解壓

錯誤模板16行

渲染
在模板/path/to/templates/convert.html,誤差過程中,但我不明白這是爲什麼。我是一個django的新手,但有點習慣於python。 在convert.html第16行是具有

{{ form.as_ul }} 

片的代碼行。

現在我只是試圖讓表單顯示在我的網站上,遠不及它做的事情!

讓我知道這個描述是否完整,不用於在這裏發佈問題! 謝謝!

回答

2

您對choices的說法在ChoiceField中不正確。

作爲每the documentation

choices

一種迭代2元組(例如,列表或元組)作爲 選擇該字段使用。該參數接受與模型字段的 選擇參數相同的格式。有關更多詳細信息,請參閱模型字段參考 選項文檔。

就你而言,你有一個單一的元素。您將至少需要:

choices=[('a_code', 'A Pretty Display Value')] 

心靈:

  • 名單
  • 元組

當然,有一個選擇一個ChoiceField的兩個元素是不真的是一個選擇。你可能要考慮:

[ 
    ('a_code', u'A Pretty Display Value'), 
    ('another_code', 'Another pretty display value') 
] 
+0

非常感謝,我已經整理出來了! – user1354607