Ошибка «неизвестного столбца X.id» в django с использованием существующей базы данных

Я пытаюсь создать модель для существующей БД. Используя вывод manage.py inspectdb , файл My models.py выглядит так:

 from django.db import models ...some more stuff here... class Scripts(models.Model): run_site = models.ForeignKey(Sites, db_column='run_site') script_name = models.CharField(max_length=120) module_name = models.CharField(unique=True, max_length=120) type = models.CharField(max_length=24) cat_name = models.CharField(max_length=90) owner = models.ForeignKey(QAPeople, db_column='owner') only_server = models.CharField(max_length=120, blank=True) guest = models.IntegerField() registered = models.IntegerField() super = models.IntegerField() admin = models.IntegerField() run_timing = models.CharField(max_length=27) manual_owner = models.ForeignKey(QAPeople, db_column='manual_owner') script_id = models.IntegerField(unique=True,) version = models.IntegerField() comment = models.ForeignKey('ScriptComments', null=True, blank=True) class Meta: db_table = u'scripts' 

Когда я пытаюсь выполнить Scripts.objects.all() я получаю

 Traceback (most recent call last): File "<console>", line 1, in <module> File "C:\Python26\lib\site-packages\django\db\models\query.py", line 68, in __repr__ data = list(self[:REPR_OUTPUT_SIZE + 1]) File "C:\Python26\lib\site-packages\django\db\models\query.py", line 83, in __len__ self._result_cache.extend(list(self._iter)) File "C:\Python26\lib\site-packages\django\db\models\query.py", line 269, in iterator for row in compiler.results_iter(): File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 672, in results_iter for rows in self.execute_sql(MULTI): File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 727, in execute_sql cursor.execute(sql, params) File "C:\Python26\lib\site-packages\django\db\backends\util.py", line 15, in execute return self.cursor.execute(sql, params) File "C:\Python26\lib\site-packages\django\db\backends\mysql\base.py", line 86, in execute return self.cursor.execute(query, args) File "C:\Python26\lib\site-packages\MySQLdb\cursors.py", line 173, in execute self.errorhandler(self, exc, value) File "C:\Python26\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue OperationalError: (1054, "Unknown column 'scripts.id' in 'field list'") 

Почему django считает, что должен быть столбец scripts.id ? Как исправить это, не отбрасывая таблицы и т. Д.?

  • Как изящно остановить python unittest?
  • Класс солода Parser бросает класс не найден исключение
  • Как создать заявку на покупку акций в python
  • В Python существует ли элегантный способ распечатки списка в пользовательском формате без явного цикла?
  • Создание прокручиваемого мультимножества с pylab python
  • Python присоединяется к процессу, не блокируя родительский
  • Python - использование оператора умножения для создания копий объектов в списках
  • Синтаксис определения класса Python
  • 2 Solutions collect form web for “Ошибка «неизвестного столбца X.id» в django с использованием существующей базы данных”

    Всегда по умолчанию подразумевается неявное поле id как автоматическое увеличение первичного ключа на каждой модели. См. Primary_key в документах Django, как изменить это поле на какое-то другое имя, но должен быть один первичный ключ (также в вашей таблице).

    Также вы можете не захотеть называть одно из ваших полей super , так как оно затеняет встроенный super Python в классе. Может быть, вам трудно найти ошибку в какой-то день.

    Я не уверен, знакомы ли вы с джанго -югом?

    Это хороший инструмент, который помогает вам переносить данные из одной структуры в другую, а также помогает выявлять проблемы до отправки информации в таблицу, что приводит к меньшему количеству ошибок и отладке впоследствии.

    Python - лучший язык программирования в мире.