Ошибка типа: неподдерживаемые типы операндов для -: 'int' и 'builtin_function_or_method' - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь исключить введенное пользователем целое число из product_qty в моей базе данных sqlite3, и я получаю эту ошибку:

TypeError: неподдерживаемые типы операндов для -: 'int' и 'builtin_function_or_method'

Это две функции, которые задействуются при выдаче этой ошибки.

def Move():
        curItem = tree.focus()
        print (tree.item(curItem))
        contents = (tree.item(curItem))
        getvalue = contents.get('values')
        print(getvalue)
        selecteditem = contents['values']
        updateStock(id, getvalue[0])
        Database()
        cursor.execute("INSERT INTO `basket` VALUES(?, ?, ?, ?)", getvalue)
        conn.commit()
        PRODUCT_ID.set("")
        PRODUCT_NAME.set("")
        PRODUCT_PRICE.set("")
        PRODUCT_QTY.set("")
        conn.close()

def updateStock(qty, id):
        t = (id,)
        Database()
        cursor.execute("SELECT product_qty FROM product WHERE product_id = ?", t)
        old_qty = cursor.fetchone()
        new_qty = 0
        new_qty = int(old_qty[0]) - qty
        cursor.execute("UPDATE product SET product_qty = ? WHERE product_id = ?", (new_qty, id))
        conn.commit()
        conn.close()

1 Ответ

0 голосов
/ 20 декабря 2018

Вы передаете встроенную функцию id в updateStock.Это не заканчивается хорошо.Я бы избегал этого имени для переменных.Вам нужно найти способ определить интересующий вас идентификатор в вашей функции Move.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...