django 表没有名为 Exception 的列
Posted
技术标签:
【中文标题】django 表没有名为 Exception 的列【英文标题】:django table has no column named Exception 【发布时间】:2020-05-30 23:48:02 【问题描述】:Git Repository 请求指导我该怎么做。
我在 Django 的帮助下在一个电子商务网站上工作。我是 Django 的初学者 下图提供了我的数据库表。它有助于添加产品
在浏览器中显示错误。当我在管理面板中添加产品时,此错误会显示给我。它有助于添加产品,但是当我添加产品时会出现以下错误。
迁移时出错
请求指导我做什么。
【问题讨论】:
这能回答你的问题吗? You are trying to add a non-nullable field 'new_field' to userprofile without a default 【参考方案1】:第一次迁移后,如果添加任何不能为空的字段,则必须提供默认值。您的 desc 字段不可为空,因此您必须在 desc 字段中添加 default='some_value'
。
【讨论】:
非常感谢 kamilyrb 花费您宝贵的时间来审核我的代码。【参考方案2】:你准备好桌子了吗?因为错误说,有一个名为 shop_product 的表,但它没有名为 product_name 的列。
因此,您的表格结构将使我们更接近您的问题的解决方案。
编辑:
我刚刚看到,您提供了您的 Git 存储库。我查看了数据库,上面写的内容是正确的。您的 shop_product 表没有列。我没有查看您的代码是否会自动设置,但我想您应该手动创建列,对吧?
【讨论】:
可以看到我在第一张图片中创建了产品名称栏 在我的代码中,还有一个名为 product 的表【参考方案3】: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
删除您的迁移文件,然后再次尝试迁移命令。
【讨论】:
@BrijeshKalkani 编辑您的问题并将错误放入其中 我删除了文件并重新迁移。但是,添加产品时出错。以上是关于django 表没有名为 Exception 的列的主要内容,如果未能解决你的问题,请参考以下文章
表 polls_choice 没有名为 poll_id 的列
sqlite3.OperationalError:表测试没有名为 python 的列错误
android.database.sqlite.SQLiteException:表contact_data没有名为timestamp_的列