Ошибка при выполнении запроса - PullRequest
4 голосов
/ 26 мая 2010

Я получаю сообщение об ошибке по этому запросу

query = "select count(*) from pgns_game where raw_moves = %s"
params = ('a',)
total_rows = self.model.objects.raw(query, params)

и там написано

InvalidQuery('Raw query must include the primary key')

Я явно что-то упускаю, но не знаю что. Есть идеи?

1 Ответ

16 голосов
/ 26 мая 2010

self.model.objects.raw() ожидает, что результат запроса будет содержать первичные ключи от модели self.model, поэтому он может превратить их в список объектов для результата функции.

Что вам действительно нужно сделать, это выполнить SQL напрямую, а не через менеджера. Ваш код, вероятно, будет выглядеть так:

from django.db import connection
cursor = connection.cursor()
cursor.execute("select count(*) from pgns_game where raw_moves = %s", ['a'])
total_rows = cursor.fetchone()

Я сам не пробовал, однако.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...