现在,我有一个带有导入功能的Django应用程序,它接受一个.zip
文件,读取csv文件并将它们格式化为JSON,然后将它们插入到数据库中。包含所有数据的JSON文件放入temp_dir
,称为data.json
。
不幸的是,插入是这样完成的:
Building.objects.all().delete()
call_command('loaddata', os.path.join(temp_dir, 'data.json'))
我的问题是所有数据都被删除然后重新添加。我需要找到一种更新和添加数据的方法,而不是删除数据。
我一直在查看其他Django commands,但我似乎无法找到允许我插入数据并更新/添加记录的内容。我希望有一个简单的方法可以做到这一点而不需要修改很多。
答案 0 :(得分:1)
如果您循环浏览数据,可以使用get_or_create(),如果该对象存在,则会返回该对象,如果该对象不存在,则会创建该对象:
obj, created = Person.objects.get_or_create(first_name='John', last_name='Lennon', defaults={'birthday': date(1940, 10, 9)})