我有一段代码,从不同的表中创建多个复杂的查询集,使用了很多注释等...
然后,该代码使用union连接这些查询集。
每个查询集本身似乎都没问题。对于每个查询集,调用print(len(qset))
都有效。
但是,在combined_qset = qset1.union(qset2)
之后,我会得到以下错误:
django.db.utils.ProgrammingError: each UNION query must have the
same number of columns
LINE 1: ..., '') AS "owner" FROM "t1") UNION (SELECT "field_x...
^
当我查看代码时,我会数一下
.only(...)
和.values(...)
调用中的字段数量、注释数量等等,似乎所有这些查询集都有完全相同的列数。错误消息只显示了生成的SQL的一个小部分(请参见上文),因此并没有真正提供帮助。
是否有简单的方法可以获取查询集的列列表,以便我可以找到差异并加以修复?
combined_qset = qset1.union(qset2)
,这导致了“每个UNION查询必须具有相同数量的列”的错误。 - Granny Aching