You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为id赋值报错且add_to_fav()参数不匹配,求新手易懂解决方案

两个报错的修复方案

1. 报错add_to_fav() takes 1 positional argument but 2 were given

Kivy里按钮的on_release事件会自动把按钮实例作为参数传给绑定的函数,你的add_to_fav只定义了self一个参数,所以触发时会参数不匹配报错。

修复方法:给add_to_fav添加一个参数(哪怕不用),修改函数定义:

def add_to_fav(self, inst):

2. 报错int is not subscriptable

你在add_to_fav里写了id = self.row_num[0],但self.row_num是整数类型(在on_row_press中计算得到的是行号整数),整数不能用下标[0]访问。你需要的是选中化学品的ID,应该用之前存在self.row_data里的第一个元素(也就是数据表第一列的Id值)。

修复方法:把获取ID的代码改成:

id = self.row_data[0]

修改后的完整add_to_fav函数

def add_to_fav(self, inst):
    print('add to favorite')
    saved = '1'
    id = self.row_data[0]
    print(id)
    self.database.update_chemical(id, saved)
    self.reload_data_table()
    self.dialog.dismiss()
    self.dialog = None

内容的提问来源于stack exchange,提问作者MiLi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:32:31