TypeError: can only concatenate tuple (not "int") to tuple
TypeError: can only concatenate tuple (not "int") to tuple
我正在尝试 return 来自数据库的一个值并得到这个 error.I 在这里尝试了之前回答的问题,但是没有 luck.Can 有人帮助我吗?
@frappe.whitelist()
def generate_barcode():
last_barcode = frappe.db.sql("""\
select MAX(barcode) from `tabItem` """)
if last_barcode:
last_barcode = last_barcode + 1
else:
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
random.shuffle(x)
last_barcode = x[0]
return {'last_barcode':last_barcode}
添加回溯:
Traceback (innermost last):
File "/home/adminuser/frappe-bench-hitech/apps/frappe/frappe/app.py", line 49, in application
response = frappe.handler.handle()
File "/home/adminuser/frappe-bench-hitech/apps/frappe/frappe/handler.py", line 66, in handle
execute_cmd(cmd)
File "/home/adminuser/frappe-bench-hitech/apps/frappe/frappe/handler.py", line 89, in execute_cmd
ret = frappe.call(method, **frappe.form_dict)
File "/home/adminuser/frappe-bench-hitech/apps/frappe/frappe/__init__.py", line 531, in call
return fn(*args, **newargs)
File "/home/adminuser/frappe-bench-hitech/apps/erpnext/erpnext/stock/doctype/item/item.py", line 405, in generate_barcode
last_barcode = last_barcode + 1
TypeError: can only concatenate tuple (not "int") to tuple
我不知道 "frappe" 是什么,而且您未能 post 完整的回溯,所以我们只能尝试猜测,但很明显 frappe.db.sql("select MAX(barcode) from
tabItem")
returns 一个元组(这是我对 SQL db 上的 select 的期望),所以你想要这样的东西:
row = frappe.db.sql(
"select MAX(barcode) from `tabItem`"
)
last_barcode = row[0]
if last_barcode:
last_barcode = last_barcode + 1
附带说明:如果您想要一个介于 0 和 9(包括在内)之间的随机整数,则拼写为 random.randint(0, 9)
错误消息说 last_barcode
是一个元组。使用 last_barcode[0]
检索第一个值(在这种情况下,这将是唯一的值,因为您选择了一列)。
if last_barcode:
last_barcode = last_barcode[0] + 1
为了大家的帮助,我不知怎么弄到了answer.Thanks
@frappe.whitelist()
def generate_barcode():
last_barcode_auto = frappe.db.sql("""\
select MAX(barcode) from `tabItem` """)
if last_barcode_auto[0][0] :
last_barcode = last_barcode_auto[0][0]
final_barcode= last_barcode+1
else:
final_barcode=random.randrange(100001, 100000000000, 2)
return {'final_barcode':final_barcode}
我正在尝试 return 来自数据库的一个值并得到这个 error.I 在这里尝试了之前回答的问题,但是没有 luck.Can 有人帮助我吗?
@frappe.whitelist()
def generate_barcode():
last_barcode = frappe.db.sql("""\
select MAX(barcode) from `tabItem` """)
if last_barcode:
last_barcode = last_barcode + 1
else:
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
random.shuffle(x)
last_barcode = x[0]
return {'last_barcode':last_barcode}
添加回溯:
Traceback (innermost last):
File "/home/adminuser/frappe-bench-hitech/apps/frappe/frappe/app.py", line 49, in application
response = frappe.handler.handle()
File "/home/adminuser/frappe-bench-hitech/apps/frappe/frappe/handler.py", line 66, in handle
execute_cmd(cmd)
File "/home/adminuser/frappe-bench-hitech/apps/frappe/frappe/handler.py", line 89, in execute_cmd
ret = frappe.call(method, **frappe.form_dict)
File "/home/adminuser/frappe-bench-hitech/apps/frappe/frappe/__init__.py", line 531, in call
return fn(*args, **newargs)
File "/home/adminuser/frappe-bench-hitech/apps/erpnext/erpnext/stock/doctype/item/item.py", line 405, in generate_barcode
last_barcode = last_barcode + 1
TypeError: can only concatenate tuple (not "int") to tuple
我不知道 "frappe" 是什么,而且您未能 post 完整的回溯,所以我们只能尝试猜测,但很明显 frappe.db.sql("select MAX(barcode) from
tabItem")
returns 一个元组(这是我对 SQL db 上的 select 的期望),所以你想要这样的东西:
row = frappe.db.sql(
"select MAX(barcode) from `tabItem`"
)
last_barcode = row[0]
if last_barcode:
last_barcode = last_barcode + 1
附带说明:如果您想要一个介于 0 和 9(包括在内)之间的随机整数,则拼写为 random.randint(0, 9)
错误消息说 last_barcode
是一个元组。使用 last_barcode[0]
检索第一个值(在这种情况下,这将是唯一的值,因为您选择了一列)。
if last_barcode:
last_barcode = last_barcode[0] + 1
为了大家的帮助,我不知怎么弄到了answer.Thanks
@frappe.whitelist()
def generate_barcode():
last_barcode_auto = frappe.db.sql("""\
select MAX(barcode) from `tabItem` """)
if last_barcode_auto[0][0] :
last_barcode = last_barcode_auto[0][0]
final_barcode= last_barcode+1
else:
final_barcode=random.randrange(100001, 100000000000, 2)
return {'final_barcode':final_barcode}