我有一个Django代码,它必须做一些数学运算,但是我不断地得到以下错误:
不支持的-操作数类型:'str‘和'int’
以下是代码:
from django.shortcuts import render
from django.http import HttpRequest
def index(request):
nor = request.GET.get('nor')
mc = request.GET.get('mc')
repaired = request.GET.get('repaired')
if isinstance(nor, int):
if repaired == 'yes':
if mc == 'yes':
summary = nor*20000+30000
else:
summary = nor*20000
else:
if mc == 'yes':
summary = nor*20000-20000
else:
summary = nor*20000-50000
else:
summary = 'Try again'
return render(request, 'index.html', {'summary':summary})这里也是我想从其中获得"nor“的URL:
http://localhost:8000/mechanical/?nor=4&mc=yes&repaired=no&submit=Submit
发布于 2020-01-23 12:12:31
查询字符串参数总是字符串,您需要将它们转换为所需的类型。在这里,您需要将字符串转换为int。
def index(request):
nor = request.GET.get('nor')
mc = request.GET.get('mc')
if nor: # check if parameter exist.
nor = int(nor)
repaired = request.GET.get('repaired')
if isinstance(nor, int):
if repaired == 'yes':
if mc == 'yes':
summary = nor*20000+30000
else:
summary = nor*20000
else:
if mc == 'yes':
summary = nor*20000-20000
else:
summary = nor*20000-50000
else:
summary = 'Try again'
return render(request, 'index.html', {'summary':summary})您可以尝试-catch块围绕您的类型转换来处理其他异常。
https://stackoverflow.com/questions/59878071
复制相似问题