Django / pyodbc错误:格式字符串的参数不够

时间:2015-02-09 17:33:13

标签: sql-server django pyodbc

我在Django(1.6.5)中定义了一个Dictionary模型。一种方法(称为get_topentities)返回字典中的顶级名称(实体名称由实体模型定义):

def get_topentities(self,n):
        entities = self.entity_set.select_related().filter(in_dico=True,table_type=0).order_by("rank")[0:n]
        return entities

当我调用该函数时(比如说n = 2),它返回前2个元素,但我无法访问第二个元素,因为这个"没有足够的参数来格式化字符串"错误:

In [5]: d = Dictionary.objects.get(code='USA')
In [6]: top2 = d.get_topentities(2)
In [7]: top2
Out[7]: [<Entity: BARACK OBAMA>, <Entity: GOVERNMENT>]
In [8]: top2[0]
Out[8]: <Entity: BARACK OBAMA>    
In [9]: top2[1]
.
.
/usr/local/lib/python2.7/dist-packages/django_pyodbc/compiler.pyc in         as_sql(self, with_limits, with_col_aliases)
172         # Lop off ORDER... and the initial "SELECT"
173         inner_select = _remove_order_limit_offset(raw_sql)
--> 174         outer_fields, inner_select = self._alias_columns(inner_select)
175 
176         order = _get_order_limit_offset(raw_sql)[0]

/usr/local/lib/python2.7/dist-packages/django_pyodbc/compiler.pyc in _alias_columns(self, sql)
339 
340                 # store the expanded paren string
--> 341                 parens[key] = buf% parens
342                 #cannot use {} because IBM's DB2 uses {} as quotes
343                 paren_buf[paren_depth] += '(%(' + key + ')s)'

TypeError: not enough arguments for format string

In [10]:

我的服务器后端是MSSQL,我使用pyodbc作为数据库驱动程序。如果我在带有引擎sqlserver_ado的PC上尝试相同的功能,那么它可以工作。有人可以帮忙吗? 问候, 帕特里克

0 个答案:

没有答案