Django项目OperationalError:app_orderitem.rent列不存在问题咨询
解决Django中「OperationalError: no such column: app_orderitem.rent」错误
问题描述
我刚创建了一个Django项目,其中包含多个模型,OrderItem模型带有rent字段。但无法通过/admin进入OrderItem选项,也无法创建OrderItem,项目初始无数据,出现「OperationalError at /admin/app/orderitem/ no such column: app_orderitem.rent」错误。
相关代码
models.py
class OrderItem(models.Model): customer = models.ForeignKey( User, on_delete=models.SET_NULL, null=True, blank=False) product = models.ForeignKey( Product, on_delete=models.SET_NULL, blank=True, null=True) order = models.ForeignKey( Order, on_delete=models.SET_NULL, null=True, blank=False) rent = models.BooleanField(blank=False, null=False) date_ordered = models.DateField(auto_now_add=True, blank=True) date_rented = models.DateField(null=True, blank=True) date_returned = models.DateField(null=True, blank=True) date = models.DateField(auto_now_add=True) def __str__(self): return str(self.product) + " Order: (" + str(self.order)+")"
serializer.py
class orderItemSerializers(serializers.ModelSerializer): class Meta: model = OrderItem fields = '__all__'
views.py
@api_view(['GET', 'POST']) def getOrderItemData(request): if request.method == 'GET': item = OrderItem.objects.all() serializer = orderItemSerializers(item, many=True) if request.method == 'POST': print(request.data) serializer = orderItemSerializers(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data)
问题原因
核心原因很直接:你在代码里给OrderItem模型加了rent字段,但这个变更没有同步到数据库,数据库里的app_orderitem表根本不存在rent这一列,Django查询时找不到对应列就会抛出这个错误。
解决步骤
生成迁移脚本
打开项目根目录的终端,执行命令:python manage.py makemigrations这一步会扫描模型的变化,生成对应的迁移文件,记录「新增rent字段」这个操作。
同步变更到数据库
接着执行迁移命令,把模型变更实际应用到数据库:python manage.py migrate执行完成后,数据库里的
app_orderitem表就会新增rent列。重启开发服务器(建议)
如果你的服务是用python manage.py runserver启动的,重启一下服务器,确保Django加载最新的模型和数据库结构。
额外注意点
- 要是执行
makemigrations没生成迁移文件,检查两个关键点:- 你的app有没有添加到
settings.py的INSTALLED_APPS列表中 - 模型文件有没有保存,有没有语法错误
- 你的app有没有添加到
- 每次修改模型字段后,都必须走「makemigrations → migrate」的流程,Django不会自动同步代码变更到数据库。
内容的提问来源于stack exchange,提问作者Naimur Sharon
相关产品推荐
相关产品推荐

