这是我的查询生成器方法:
def query_builder(search_parameter):
query = BusinessOwner.query
# query = query.select_from(BusinessOwnerTask)
query = query.join(services, BusinessOwnerTask.services_id == services.c.id). \
join(BusinessOwnerTask, BusinessOwnerTask.business_owner_id == BusinessOwner.id)
query = query.filter(services.c.service_grade_id == search_parameter.service_grade)
if len(search_parameter.name) > 0:
query = query.filter(BusinessOwner.name == search_parameter.name)
if len(search_parameter.service_types) > 0:
query = query.filter(BusinessOwnerTask.services_id.in_(search_parameter.service_types))
return query
但是,当查询.all()打电话,它在postgres上抱怨:
ProgrammingError: (psycopg2.ProgrammingError) missing FROM-clause entry for table "business_owner_tasks" LINE 2: FROM business_owners JOIN services ON business_owner_tasks.s...
我决定加上这个:
^{pr2}$它抱怨说:
ProgrammingError: (psycopg2.ProgrammingError) table name "business_owner_tasks" specified more than once
我的错误是什么?在
我将查询生成器更改为:
提示:
最好先在pgAdmin或其他工具上对纯sql进行查询。然后在ORM工具上进行查询
相关问题 更多 >
编程相关推荐