Django RawQuerySet .__ repr__:没有足够的格式字符串参数

时间:2012-01-28 17:37:15

标签: python django string-formatting django-queryset

我在Django中使用RawQuerySet,我需要传递几个参数(5)。 我可以使用MyModel.objects.raw(SQL, params)调用构造函数。 SQL非常长且不相关,但params[991L, 991L, 991L, 7L, 3]

我得到RawQuerySet作为回报。因此,通话是可以的。

但是,我的问题是,当调用__repr__时(通过print此处),我收到"Not enough arguments for format string"错误。现在,我没有得到以下内容:

  1. 为什么自呼叫起作用后我没有足够的参数?
  2. [m.start() for m in re.finditer('%s', qs.raw_query)]给了我5个项目,qs.params也是如此。
  3. 我很确定我错过了什么,但我似乎找不到什么。

1 个答案:

答案 0 :(得分:2)

我最终找到了解释。我不确定这对其他人有多大帮助,但无论如何。

问题来自于调用中的paramslist.这似乎您可以使用list来实例化RawQuerySet,但它未被转换进入一个元组,以便以后不能用它进行字符串格式化。

结论我将使用MyModel.objects.raw(SQL, tuple(params))