Проблема в панели Django3.0 после миграции

Почему ошибка появляется в django/admin? Миграции в порядке, мне нужно иметь 3 элемента в таблице, где у меня будут результаты. Спасибо за помощь.

class Robot(models.Model):
    """Robot model, speed and position simulation"""
    product = models.IntegerField(choices=CHOOSE)
    velocity = models.FloatField()
    positionX = models.FloatField()
    positionY = models.FloatField()
    angleTHETA = models.FloatField()

    class Meta:`enter code here`
        verbose_name = "Robot"
        verbose_name_plural = "Robots"

    def __str__(self):
        resum = self.get_product_display()
        return resum

ProgrammingError at /admin/robot/robot/ столбец robot_robot.velocity не существует LINE 1: ...LECT "robot_robot". "id", "robot_robot". "product", "robot_rob...

Вы получаете ошибку, потому что запрашиваемые вами поля базы данных, вероятно, не существуют. Не забудьте выполнить обе команды makemigrations и migrate.

Как посоветовал @ElvinJafarov, прежде чем продолжать, выполните миграцию базы данных. Вы получаете сообщение о angleTHETA поле из-за ограничений базы данных - это совершенно нормально. Как указано в сообщении "Это происходит потому, что базе данных нужно чем-то заполнить существующие строки".

На этом этапе вы можете выйти и вручную определить значение по умолчанию в models.py (нажмите 2 в подсказке сообщения). После этого измените ваше Robot, установив поле по умолчанию, чтобы Django мог заполнить DB значением по умолчанию, например:

angleTHETA = models.FloatField(default=0)

Вы также можете изменить ограничения БД, разрешив ей иметь пустые значения.

angleTHETA = models.FloatField(null=True, blank=True)

В общем, я советую вам прочитать документацию по миграциям.

Работает: Я не знаю, что из этого сработало, но:

  1. у меня было имя alpha и имя проекта alpha, поэтому я изменил его на alphaapp,
  2. после миграции 2 я создал нового суперпользователя

Возможно, это будет кому-то полезно ;)

Вернуться на верх