0
我正在构建一些简单的事情,即在Django的列表中添加数字。然而,每当我尝试将一个浮点数的字符串值转换为一个浮点数时,它就会抛出一个错误。在代码中更容易看到。无法将字符串转换为奇怪的Django/Python错误。
首先我的观点:
def submitworkout(request):
user =User.objects.get(username = request.session['username'])
bodyweight =request.GET['weight']
repinputboxes = request.GET['repinputboxes']
totalreps = summation(list(repinputboxes))
try:
float(bodyweight)
except:
bodyweight = None
w = workout(userid = user.id, datesubmitted =datetime.datetime.now(), workoutdate = request.GET['workoutdate'],
bodyweight = bodyweight,
totalreps = totalreps,
totalweight = summation(request.GET['weightinputboxes']),
numexercises = int(request.GET['numexercises']),
numsets = summation(request.GET['numsets']),
)
# w.save()
# workoutid = workout.objects.get(id = w.id)
#createxercise(dict(request.GET),user.id,workoutid.id)
return render_to_response('home.html',{'infoprompt': request.GET},context_instance=RequestContext(request))
def summation(x):
suma = 0
for i in x:
suma += float(i)
return suma
接下来是回溯:
Environment:
Request Method: GET
Request URL: http://localhost:8000/submitworkout/?workoutdate=&weight=&numexercises=1&exercisename=b&numsets=1&weightinputboxes=32.5&repinputboxes=1
Django Version: 1.3.1
Python Version: 2.7.0
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'authentication',
'tracking')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Chris\testdjango\fitness\views.py" in submitworkout
45. totalweight = summation(request.GET['weightinputboxes']),
File "C:\Users\Chris\testdjango\fitness\views.py" in summation
89. suma += float(i)
Exception Type: ValueError at /submitworkout/
Exception Value: could not convert string to float: .
以及最后但并非最不重要的我的局部变量是给我的问题:
weightinputboxes = u'32.5'
在此之前,我又遇到了另一个奇怪的错误: string index out of range Python, Django
我认为这是类似的问题。但是,我仍然无法弄清楚。
谢谢你们!
的
getlist
方法我改成了这个总权重=求和(request.GET.getlist([“weightinputboxes”]))编写的,并得到了错误难以置信的类型:'列表' – 2012-07-10 01:27:51你不想要[和] – 2012-07-10 01:29:14
但是,我试过你的第二个代码片段,它的工作。我会将你的问题标记为正确的答案,编辑出第一部分。 – 2012-07-10 01:29:26