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 的列

Laravel 表 * 没有名为 * 的列

表信息在编译插入时没有名为 Desc 的列

sqlite3.OperationalError:表测试没有名为 python 的列错误

android.database.sqlite.SQLiteException:表contact_data没有名为timestamp_的列

[Django框架之ORM常用字段和参数单表操作]