Django Raw SQL дает мне TypeError недостаточно аргументов - PullRequest
4 голосов
/ 15 сентября 2011

код:

 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.рендеринг: недостаточно аргументов для строки формата

1 Ответ

15 голосов
/ 15 сентября 2011

Необработанный 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
    """)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...