[英]why this sql query doesn't work in python?
我有一个函数findParent
,它接受一个字符串,将其与db
其他字符串进行比较,然后返回另一个字符串。 我将此写在.py文件中。
products=db(findParent(db.product_info.source_place)==auth.user.place).select()
问题是, db.product_info.source_place
不会从db
db.product_info.source_place
source_place
,而是发送字符串本身,即findParent
接收db.product_info.source_place
而不是db
的相应值。
我究竟做错了什么?
比较两个字段时,例如:
products=db(table1.field1==table2.field2).select()
在这两个字段上应用联接后,它将返回一个表。 当您使用findParent(db.product_info.source_place)
, findParent
只是考虑作为字符串db.product_info.source_place
因为实际上表中的所有行均未调用它,并且对auth.user
进行了一次赋值和评估auth.user
与place列的返回值进行比较。
解决方案添加:
rows = db(db.product_info).select(db.product_info.source_place)listwantedsource = []用于行中的行:listwantedsource.append(findParent(row.source_place))products = db(auth.user.place.belongs(listwantedsource) ))。选择()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.