Django Raw SQL给我TypeError不够的参数

时间:2011-09-15 01:46:25

标签: sql django

代码:

 diary=models.SablogArticles.objects.raw("SELECT articleid,DATE_FORMAT(from_unixtime(dateline),'%Y-%m')\
 as newtime,count(*) as howmany   FROM sablog_articles group by newtime")

结果给了我:

  

在模板d:\ python \ project \ tpl \ base.html中,第68行的错误已被捕获   渲染时出现TypeError:格式字符串

的参数不足

1 个答案:

答案 0 :(得分:14)

原始SQL是带有格式参数的字符串,这意味着%表示要格式化的参数。你的字符串中有%。你需要加倍他们以保护他们免受解释:

diary = models.SablogArticles.objects.raw("""
    SELECT 
        articleid, 
        DATE_FORMAT(from_unixtime(dateline),'%%Y-%%m') as newtime,
        count(*) as howmany
    FROM sablog_articles group by newtime
    """)