繁体   English   中英

为什么这个SQL查询在Python中不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM