2013-04-21 55 views
2

我的view.py如下所示。我认为错误在这一部分。如果现在还不够,我会发布详细的功能。基本上,总数作为参数的模型是整型。ValueError:int()与基数为10的无效文字:''无法识别错误

编辑1:编写整个函数,使其更有用。

def subjManip(request): 

    c= {} 
    c.update(csrf(request)) 
    subj = None 
    c.update(csrf(request)) 
    if request.method == 'POST': 
     form = SubjForm(request.POST) 

     if form.is_valid(): 
       user = request.user 
       subj1 = form.cleaned_data['subj1'] 
       subj2 = form.cleaned_data['subj2'] 
       subj3 = form.cleaned_data['subj3'] 

       if subj1 == None and subj2 == None: 
        raise forms.ValidationError("Both subjs cannot be empty") 


       tot = float (((float(0.2017 * subj1)+ float (0.09036 * subj2) + float(0.6309 * subj3) - 5.0269)/ 4.184) 
       total =int(tot) 

       elif subj1 == None: 
        total = subj1 
+0

[PEP8](http://www.python.org/dev/peps/pep-0008/#programming-recommendations) - 比较像'None'单身应该总是用'is'或'not'来完成,从来都不是等号运算符。 – Ngenator 2013-04-21 20:27:44

+1

很确定问题不在代码的这一部分:唯一的'int'调用总是得到一个'float'实例,这很好。它可能在'SubjForm'实例化中。你能发布整个异常/回溯? – Michael 2013-04-21 20:34:01

+0

@迈克尔你是对的。在表单中,我错误地将subj3声明为字符而不是整数。谢谢你指出。 – 2013-04-21 20:38:09

回答

1

尝试替换tot = (subj1+subj2)/2.2tot = (float(subj1) + float(subj2))/2.2

+0

我试过了。不用找了。仍然是相同的错误 – 2013-04-21 20:18:50

+0

然后发布一个详细的功能可能会有所帮助。 – Alexey 2013-04-21 20:21:12

+0

@appyg Full stacktrace? – Ngenator 2013-04-21 20:33:48

相关问题