我在Django中使用RawQuerySet
,我需要传递几个参数(5)。
我可以使用MyModel.objects.raw(SQL, params)
调用构造函数。 SQL非常长且不相关,但params
是[991L, 991L, 991L, 7L, 3]
。
我得到RawQuerySet
作为回报。因此,通话是可以的。
但是,我的问题是,当调用__repr__
时(通过print
此处),我收到"Not enough arguments for format string"
错误。现在,我没有得到以下内容:
[m.start() for m in re.finditer('%s', qs.raw_query)]
给了我5个项目,qs.params
也是如此。我很确定我错过了什么,但我似乎找不到什么。
答案 0 :(得分:2)
我最终找到了解释。我不确定这对其他人有多大帮助,但无论如何。
问题来自于调用中的params
是list.
这似乎您可以使用list
来实例化RawQuerySet
,但它未被转换进入一个元组,以便以后不能用它进行字符串格式化。
结论我将使用MyModel.objects.raw(SQL, tuple(params))
。