Python Django错误-不支持的操作数类型-:'str'和'int'

Python Django错误-不支持的操作数类型-:'str'和'int',python,django,Python,Django,我有一个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.g

我有一个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:


查询字符串参数始终是字符串,您需要将其转换为所需类型。 这里需要将字符串转换为int

def索引请求: nor=request.GET.GET'nor' mc=请求.获取.获取'mc' if nor:检查参数是否存在。 nor=intnor 修复=请求。获取。获取“修复” 如果isinstancenor,int: 如果已修复==“是”: 如果mc==‘是’: 汇总=nor*20000+30000 其他: 汇总=nor*20000 其他: 如果mc==‘是’: 汇总=nor*20000-20000 其他: 汇总=nor*20000-50000 其他: summary='重试' 返回renderrequest,'index.html',{'summary':summary}
您可以尝试围绕类型转换使用catch块来处理其他异常。

nor的类型是什么,我认为它是字符串,请检查并将其转换为int。Python不是Javascript。您需要intnor,如果nor已经是int,则它是无害的。除非您要求,否则Python不会将str转换为int。@DeepakPatankar就是这样: