如何将新的Django数据库条目保存到JSON?

如何将新的Django数据库条目保存到JSON?,json,django,database,git,sqlite,Json,Django,Database,Git,Sqlite,我的Django应用程序的git repo包含几个.tsv文件,其中包含填充我的应用程序数据库的初始条目。在应用程序安装期间,这些项目将导入应用程序的SQLite数据库。SQLite数据库未存储在应用程序的git repo中 在正常应用程序使用期间,我计划使用管理面板向数据库添加更多项目。但是,我也希望将这些条目保存为apprepo中的fixture。我认为JSON文件可能是实现此目的的理想选择,因为它是基于文本的,因此可以与git版本控制一起使用。这些文件将成为应用程序的更多固定装置,在初始配

我的Django应用程序的git repo包含几个.tsv文件,其中包含填充我的应用程序数据库的初始条目。在应用程序安装期间,这些项目将导入应用程序的SQLite数据库。SQLite数据库未存储在应用程序的git repo中

在正常应用程序使用期间,我计划使用管理面板向数据库添加更多项目。但是,我也希望将这些条目保存为apprepo中的fixture。我认为JSON文件可能是实现此目的的理想选择,因为它是基于文本的,因此可以与git版本控制一起使用。这些文件将成为应用程序的更多固定装置,在初始配置时导入

我如何配置我的应用程序,以便在我向管理面板添加新条目时,该条目的副本也保存在JSON文件中

我知道您可以使用
manage.py dumpdata
命令将整个数据库转储到JSON,但我不想要整个数据库,我只想要JSON用于特定数据库表/模型的新条目

我想我可以尝试破解模型上的方法,尝试将项目的JSON表示形式写入文件,但我不确定这是否理想


有更好的方法吗

不建议为可能出错或花费的时间超过其应花费的时间的内容重写
save
方法。当更改简单而重要时,通常会覆盖
保存

你可以使用信号,但在你的情况下,这是太多的工作。您可以编写一个函数来完成这项工作,但在将数据保存到数据库后仍然不能完全完成。您可以立即执行此操作,但这是一个太多的过程,除非对您的文件进行更新非常重要

我建议您在后台运行一个与所有django函数分离的函数。例如,您可以在每次数据更新或每小时调用它并编辑备份文件。您甚至可以创建一个表来监视更新过程


哪种解决方案是最好的取决于您以及数据的重要性。请记住,编辑文件也可能是一个繁重的过程,因此像每天一样创建备份可能是一个更好的主意。

我相信您正在寻找每次创建或更新的特定数据库条目。您看过dumpdata选项了吗?在这些选项中,您可以指定app name和model name,以仅获取那些特定模型的JSON转储。您只能选择您更新的模型,并为此获取JSON。这里是Django Docs中的链接-谢谢,我正在寻找芹菜。但是,我不确定在每次数据更新时如何调用任务。这是否仍然需要将任务添加到模型的
save
方法中?您可以改用信号。通常,除非必须,否则不要重写
save
方法。