如何在不删除数据的情况下更新/添加数据到Django应用程序

时间:2014-05-23 16:35:32

标签: python json django

现在,我有一个带有导入功能的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,但我似乎无法找到允许我插入数据并更新/添加记录的内容。我希望有一个简单的方法可以做到这一点而不需要修改很多。

1 个答案:

答案 0 :(得分:1)

如果您循环浏览数据,可以使用get_or_create(),如果该对象存在,则会返回该对象,如果该对象不存在,则会创建该对象:

obj, created = Person.objects.get_or_create(first_name='John', last_name='Lennon', defaults={'birthday': date(1940, 10, 9)})