У меня есть база данных postgreSQL, которая имеет таблицу foo
, которую я создал за пределами django. Я использовал manage.py inspectdb
, чтобы построить модель для таблицы foo
для меня. Этот метод работал отлично, когда я использовал MySQL, но с PostgreSQL он не работает MISERABLY. Таблица имеет несколько гигабайт, и я создаю ее из текстового файла с помощью PostgreSQL «COPY».django postgresql запрос не работает
Я могу запускать необработанные запросы в таблице foo
, и все выполняется и ожидается.
Например
foo.objects.raw('bar_sql')
выполняет, как ожидалось.
Но запущенные запросы, как:
foo.objects.get(bar=bar)
бросок
ProgrammingError column foo.id does not exist LINE 1: SELECT "foo"."id", "foo"."bar1", "all_...
foo
не врожденно имеют id
поле. Насколько я понимаю, django предполагает создать его. Имею ли я какой-то способ подорвать этот шаг при создании таблиц за пределами django?
Запросы, выполняемые на моделях, чья таблица была заполнена, запустили django, как и ожидалось во всех случаях.
Мне не хватает чего-то очень элементарного здесь, и любая помощь будет оценена по достоинству.
Я использую django 1.6 с postgreSQL 9.3.
Как выглядит ваш стол и модель? Django, возможно, не смог распознать, какой столбец является PK, поэтому он ищет «id», значение по умолчанию. Ваша модель должна иметь поле с pimary_key = True – Alvaro
Благодарим за помощь. Ты абсолютно прав. Я никогда не устанавливал первичный ключ. –