在Django更新模型时出现OperationalError



我在更新现有Django项目中的模型时面临OperationalError。

这些是我在设置

中安装的应用程序
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"admin1_app.apps.Admin1AppConfig",
]

这是admin

中的代码
from django.contrib import admin
from admin1_app.models import Product
class Product_admin(admin.ModelAdmin):
list_display=["product_name","product_price","product_qty","product_category"]
admin.site.register(Product,Product_admin)

models.py

from django.db import models
class Product(models.Model):
product_name=models.CharField(max_length=30)
product_price=models.IntegerField()
product_qty=models.IntegerField()
product_category=models.CharField(max_length=35)
def __str__(self):
return self.product_name

最初创建的程序只有3列,即product_name,product_price,product_qty,并且一切都正确完成。后来,我将product_category添加到这个现有的项目中,并且还运行了makemigrationsmigrate命令。但是我遇到了一个操作错误。

OperationalError at /admin/admin1_app/product/
(1054, "Unknown column 'admin1_app_product.product_category' in 'field list'")
Request Method: GET
Request URL:    http://127.0.0.1:8080/admin/admin1_app/product/
Django Version: 4.1.2
Exception Type: OperationalError
Exception Value:    
(1054, "Unknown column 'admin1_app_product.product_category' in 'field list'")
Exception Location: C:Usersnarendraanaconda3libsite-packagespymysqlerr.py, line 143, in raise_mysql_exception
Raised during:  django.contrib.admin.options.changelist_view
Python Executable:  C:Usersnarendraanaconda3python.exe
Python Version: 3.9.12

我尝试使用python manage.py migrate --fake命令。我不知道它是如何工作的,但只是复制了它从其他一些类似的错误解决方案在堆栈溢出,但没有结果我甚至尝试删除迁移文件夹中的0001_initial.py文件,然后重复makemigrations命令,但仍然没有用。

您可以简单地使用下面的命令手动迁移:

python3 manage.py makemigrations appname
python3 manage.py sqlmigrate appname 0001
python3 manage.py migrate

看是否能解决

最新更新