python - 没有这样的列:dashboard_book.id django
问题描述
我正在尝试将 pandas DataFrame 中的数据保存到 django 项目的 SQLite 数据库中,但我不断收到错误消息“没有这样的列:dashboard_book.id”。
目前我只有一个简单的 Excel 文件,其中有一列“标题”,里面有一个字符串。我想将其导入 DataFrame,然后将其保存到 Django 模型中。这可能看起来有点矫枉过正,但这只是一个开始,因为我想用我已经到位的一些自动化脚本来构建它。
models.py 中的简单模型:
class Book(models.Model):
title = models.CharField(max_length=500)
admin.py 中的管理员注册:
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
list_display = ['title']
然后尝试使用 dataframe.to_sql() 将其保存到数据库中,此调用与其他业务逻辑位于单独的文件中:
data_table = pd.read_excel(setting.import_directory + "/book_table.xlsx")
data_table_dataframe = pd.DataFrame(data_table,)
engine = create_engine('sqlite://db.sqlite3')
data_table_dataframe.to_sql("dashboard_book", con=engine, if_exists='replace', index=True)
尝试在管理面板上访问模型时,收到错误消息,并且没有数据保存到模型中。
首次迁移模型时,该表在数据库中有一个 ID 列和一个标题列。但是,在尝试使用数据框数据加载表后,ID 列消失了。
我在 to_sql() 调用中尝试了所有不同的参数,并检查了文件以确保我没有遗漏任何内容,但我找不到问题出在哪里。
提前致谢。
解决方案
正如约翰在评论中建议的那样 - 这是由于if_exists='replace'
. 我将其更改为下面的代码,它可以工作。
data_table_dataframe.to_sql(name="dashboard_book", con=engine, if_exists='append', index=False, index_label=None, method=None)
推荐阅读
- eclipse - 在 Eclipse RAP 中打开服务器的文件对话框
- c# - 通过 NUnit GUI 0.60 运行测试时如何使 Visual Studio 2017 命中断点?
- python-3.x - 在 Python 环境中导入 scikit-learn 时出错
- javascript - 通过 onClick 使用 React Router 的重定向
- javascript - 在 HTML 中链接 JavaScript 对象
- delphi - Delphi TAction 在聚焦 TEdit 之前拦截热键
- c# - 索引父文档时的Elasticsearch空指针
- clang - Clang - 如何检索“Expr”作为字符串?
- c# - for 循环如何允许重新声明变量?
- lumen - Lumen POST 路由不工作