【发布时间】:2020-05-30 23:48:02
【问题描述】:
Git Repository 请求指导我该怎么做。
我在 Django 的帮助下在一个电子商务网站上工作。我是 Django 的初学者 下图提供了我的数据库表。它有助于添加产品
在浏览器中显示错误。当我在管理面板中添加产品时,此错误会显示给我。它有助于添加产品,但是当我添加产品时会出现以下错误。
迁移时出错
请求指导我做什么。
【问题讨论】:
标签: python django python-3.x django-admin
Git Repository 请求指导我该怎么做。
我在 Django 的帮助下在一个电子商务网站上工作。我是 Django 的初学者 下图提供了我的数据库表。它有助于添加产品
在浏览器中显示错误。当我在管理面板中添加产品时,此错误会显示给我。它有助于添加产品,但是当我添加产品时会出现以下错误。
迁移时出错
请求指导我做什么。
【问题讨论】:
标签: python django python-3.x django-admin
第一次迁移后,如果添加任何不能为空的字段,则必须提供默认值。您的 desc 字段不可为空,因此您必须在 desc 字段中添加 default='some_value'。
【讨论】:
你准备好桌子了吗?因为错误说,有一个名为 shop_product 的表,但它没有名为 product_name 的列。
因此,您的表格结构将使我们更接近您的问题的解决方案。
编辑:
我刚刚看到,您提供了您的 Git 存储库。我查看了数据库,上面写的内容是正确的。您的 shop_product 表没有列。我没有查看您的代码是否会自动设置,但我想您应该手动创建列,对吧?
【讨论】:
Take a look at here (Django Migrations Workflow)
我在你的 Github 存储库上看到了你的迁移文件夹,但没有任何你提到的字段的迹象。
每次向模型添加字段时,都需要在终端中运行以下命令
python manage.py makemigrations <app name>
python manage.py migrate
这些命令将修改您的表。
请标记您的问题,而不是从您的代码中放置图片。 看看这个:How do I ask a good question?
编辑:
在您的产品模型中,有一个名为 desc 的字段。您需要为它设置一个默认值;否则,您需要手动更新数据库中的记录。
desc = models.CharField(max_length=300, default='')
执行此操作后,pub_date 字段也会发生此错误。因此,如果您当前数据库中的 Product 对象不重要,您可以简单地删除数据库文件 db.sqlite3 并从此地址 shop/migrations/0001_initial.py 删除您的迁移文件,然后再次尝试迁移命令。
【讨论】: