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


德玛西亚99
浏览 126回答 1
1回答

明月笑刀无情

查询字符串参数始终是字符串,您需要将它们转换为所需的类型。在这里,您需要将字符串转换为 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})您可以在类型转换周围尝试捕获块来处理其他异常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python