Проблема в панели 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)
В общем, я советую вам прочитать документацию по миграциям.
Работает: Я не знаю, что из этого сработало, но:
- у меня было имя alpha и имя проекта alpha, поэтому я изменил его на alphaapp,
- после миграции 2 я создал нового суперпользователя
Возможно, это будет кому-то полезно ;)