Django.db.utils.OperationalError: нет такой таблицы: product, django не может импортировать form.py в view.py
У меня есть 3 страницы Model, Forms и View
В model.py я определяю свою таблицу
#model.py
class Prod(models.Model):
id = models.CharField(primary_key=True, max_length=10, blank=False, null=False)
description = models.TextField(blank=True, null=True)
class Meta:
managed = False
db_table = 'product'
verbose_name = 'PROD'
теперь я перехожу к forms.py
#forms.py
from .models import Prod
class ProdForm(forms.ModelForm):
#some code to fill
class Meta:
model = Prod
exclude = [...]
widgets = {
...
}
labels = {
...
}
и, наконец, с помощью view.py
#view.py
from .forms import ProdForm
Когда я выполняю python manage.py makemigrations
, я получаю ошибку, говорящую
no such table: product
Мое приложение размещалось локально на хостинге с помощью postgres
, теперь я использую db.sqlite3
для тестирования, я не понимаю, почему views.py
не может импортировать табличные формы или, по крайней мере, почему он не создает их?
Я не понимаю почему, особенно если этот код был запущен локально с postgres.
Удалите определение ProdForm
из forms.py
Вызов python manage.py makemigrations
Вызов python manage.py migrate
Добавьте форму обратно в forms.py
Примечание: Всегда мигрируйте новые определения модели перед использованием их в качестве зависимостей
.
Просто вы можете удалить все папки миграций и выполнить миграцию вручную, используя следующую команду:
python manage.py makemigrations appname
python manage.py sqlmigrate appname 0001
python manage.py migrate
Попробуйте вышеуказанные действия и посмотрите, решит ли это вашу ошибку