python - Django 错误 - 不支持的操作数类型 -: 'str' 和 'int'
问题描述
我有一个必须做一些数学运算的 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
解决方案
查询字符串参数始终是字符串,您需要将它们转换为所需的类型。在这里,您需要将字符串转换为 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})
您可以在类型转换周围尝试捕获块来处理其他异常。
推荐阅读
- imagemagick - Carrierwave / Imagemagick / Ghostscript 转换 PDF
- arrays - 如何在数组中找到连接的值?
- c - 具有变量参数化和类型的 C 函数指针
- android - Android:将 OnClickListner 设置为 RecyclerView 中每个视图项的最佳方法
- c - 我的拼写器 (cs50/pset5/speller) 存在内存泄漏问题
- python - 具有给定 THROWS ERROR geckodriver 可执行文件的二进制路径的 TOR Selenium Python 需要在 PATH 中
- php - 如何解决 gif 共享 facebook sharer.php 的问题
- github - 如何从 github 检索我的所有 repo 部署密钥?
- git - 当我输入命令“git push origin master”时会出现这种情况。我需要做什么才能使命令正常工作?
- kotlin - 通过继承创建新类型的 JSONObject