如何使用数据夹具(或其他序列化记录)中的记录更新已填充的 Django 数据库?
我知道我可以使用 Django数据夹具来提供初始数据。我可以使用相同的已编写功能从数据夹具(或类似的序列化数据,如 JSON 文档)更新数据库吗?
“从序列化数据插入或更新”操作应该是幂等的:
- 如果数据库中不存在记录(通过其键),则应将其插入。
- 如果数据库中已经存在一条记录(通过它的键),则应该更新它以匹配数据夹具。
- 最终状态应该是数据夹具中的所有数据都应该在数据库中更新,无论记录是否已经存在。
具体来说,我可以通过指定pk=null
和使用自然键来更新现有行吗?
我如何使用现有的 Django “加载数据”功能(无论loaddata
是 Django 中的其他类似功能)来读取序列化数据,如果它们不存在则插入记录,如果它们已经存在则更新它们?