Django - ProgrammingError - колонка не существует

Обычно я нахожу решение этой проблемы. Я даже пробовал ядерный вариант полного сброса базы данных с помощью python manage.py flush, но безуспешно. (Я также пробовал удалить папку migrations, но опять безрезультатно)

точное сообщение об ошибке следующее:

колонка main_reviewrating.venue_id не существует

Возможно, я впервые обращаю на это внимание, но место проведения**_id** кажется странным.

Я уверен, что обычное сообщение будет иметь вид

main_reviewrating.venue (без _id

)

Когда я запускаю python manage.py showmigrations <your_app_name>, он показывает

[X] 0001_initial

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

Вот код (models.py)

class Venue(models.Model):
    name = models.CharField(verbose_name="Name",max_length=100, null=True, blank=True)
   
    def __str__(self):
        return str(self.name) if self.name else ''

class Product(models.Model):
    name = models.CharField('Product Name', max_length=120, null=True)

    class Meta:
        db_table='Product'
    def __str__(self):
        return str(self.name)

class ReviewRating(models.Model):
    user = models.ForeignKey(User,blank=True, on_delete=models.CASCADE, related_name="usercomments")
    product=models.ForeignKey(Product,related_name="comments", on_delete=models.CASCADE)
    review =models.TextField(max_length=250)
    rating =models.IntegerField(choices=RATING, default=0)
    venue = models.ForeignKey(Venue, blank=True, null=True, related_name="venues", on_delete=models.CASCADE)


    def __str__(self):
        return '%s - %s'%(self.user, self.product)

Есть идеи, что я делаю неправильно?

Edit: если подумать, возможно, я неправильно использую ForeignKey. Я пытаюсь связать конкретный отзыв о конкретном продукте с конкретным местом.

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

Удалите все файлы в папке migration, кроме файла init.py в папке app и запустите makemigrations.

1.Удалите вашу базу данных как something.sqlite3 (для резервного копирования вы можете переименовать ее).

2.Удалите все файлы миграции, кроме __init__.py.

3.Запустите команду migrations снова.

Надеемся, что у вас не возникнет никаких проблем.

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