为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

德玛西亚99 2022-07-05 19:30:43
我有一个必须做一些数学运算的 Django 代码,但我不断收到以下错误:- 不支持的操作数类型:“str”和“int”这是代码:from django.shortcuts import renderfrom django.http import HttpRequestdef 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
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

查询字符串参数始终是字符串,您需要将它们转换为所需的类型。在这里,您需要将字符串转换为 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})

您可以在类型转换周围尝试捕获块来处理其他异常。


查看完整回答
反对 回复 2022-07-05
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号