Django模型字段未在数据库生成问题求助
问题原因及解决方法
问题根源
你在定义Product模型字段时,错误使用了Python类型提示的冒号:语法,而非Django模型要求的赋值等号=语法。Django的ORM仅会识别用等号赋值的属性作为数据库字段,冒号写法会被当作类型注解,不会被解析为模型字段,因此迁移文件只生成了默认的id主键字段。
修正后的models.py代码
from django.db import models class Product(models.Model): name = models.CharField(max_length=200) price = models.FloatField() stock = models.IntegerField() image_url = models.CharField(max_length=2083)
后续操作步骤
- 删除当前生成的不完整迁移文件(即
products/migrations目录下最新的那个仅包含id字段的迁移文件) - 重新执行迁移命令:
python3 manage.py makemigrations python3 manage.py migrate
注:从迁移文件的依赖项('products', '0004_delete_offer_delete_product')可以看出,你之前删除过Product模型,删除旧的错误迁移文件后重新生成,能避免迁移逻辑冲突。
内容的提问来源于stack exchange,提问作者Piyush Mittal
相关产品推荐
相关产品推荐

