首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-:'str‘和'int’不支持的操作数类型

-:'str‘和'int’不支持的操作数类型
EN

Stack Overflow用户
提问于 2020-01-23 12:00:09
回答 1查看 1.6K关注 0票数 0

我有一个Django代码,它必须做一些数学运算,但是我不断地得到以下错误:

不支持的-操作数类型:'str‘和'int’

以下是代码:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-23 12:12:31

查询字符串参数总是字符串,您需要将它们转换为所需的类型。在这里,您需要将字符串转换为int。

代码语言:javascript
复制
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块围绕您的类型转换来处理其他异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59878071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档