Django оболочка не может выполнить запрос ORM - PullRequest
1 голос
/ 24 февраля 2020

Я использую оболочку Django для отладки моего проекта с помощью команды python manage.py shell.

Я обнаружил, что не могу выполнить запросы ORM из оболочки и получаю сообщение об ошибке ниже.

from base.models import Template_Form, Template_Form_Field
Template_Form_Field.objects.all()

После выполнения приведенного выше кода в оболочке я получаю сообщение об ошибке ниже.

Traceback (most recent call last):
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "base_template_form_field" does not exist
LINE 1: ...ions", "base_template_form_field"."sequence" FROM "base_temp...
                                                             ^


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\models\query.py", line 250, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\models\query.py", line 274, in __iter__
    self._fetch_all()
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\models\query.py", line 1242, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\models\query.py", line 55, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1100, in execute_sql
    cursor.execute(sql, params)
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\backends\utils.py", line 99, in execute
    return super().execute(sql, params)
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\backends\utils.py", line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "D:\production\siralo\siralo_py3\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "base_template_form_field" does not exist
LINE 1: ...ions", "base_template_form_field"."sequence" FROM "base_temp...

Кто-нибудь имеет представление, почему я получаю ошибку выше и как от нее избавиться?

Я пытался выполнить поиск в Google, но не смог найти никакого решения.

Модель поля формы шаблона приведена ниже.

class Template_Form_Field(models.Model):
    template_form = models.ForeignKey(Template_Form, on_delete=models.CASCADE)
    name = models.CharField(max_length=40, verbose_name='Name')
    caption = models.CharField(max_length=80, verbose_name='Caption')
    value_options = models.TextField(null=True, blank=True, verbose_name='Value options')
    sequence = models.IntegerField(blank=True, null=True, verbose_name='Sequence')

Спасибо.

1 Ответ

0 голосов
/ 26 февраля 2020

просто запустите python manage.py migrate эта ошибка вызвана тем, что вы только что запустили python manage.py makemigrations, но не запустили python manage.py migrate.

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

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