我有一个用queryset.filter(date__gte=datetime(2011,1,1))准备的Django查询集
如果我随后调用str(queryset.query),我会在字符串中看到以下内容:
... WHERE "App_table"."date" >= 2011-1-1但是,这是无效的SQL代码,因为如果我在Postgresql中运行此代码,则会收到以下错误:
... WHERE "App_table"."date" >= 2011-1-1
ERROR:  operator does not exist: date >= integer
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.为什么会发生这种情况,我如何让Django输出正确的SQL代码以便我可以处理?
发布于 2019-08-21 00:10:11
您可以使用query. sql_with_params()方法。
print(q.query. sql_with_params())这将打印查询的参数化版本。
https://stackoverflow.com/questions/57577226
复制相似问题