如何插入或更新已经存在的,使用Django和SQLITE



我想用Django在SQLite中插入数据,我想如果数据在数据库中存在,新记录只会更新我的数据库,下一个是如果不存在将插入新的。

class User(models.Model):
email= models.CharField(max_length=200, unique=True)
name= models.CharField(max_length=200)
salary = IntegerField(null=True) 

我试图使用

try:
# update codes
except:
# Insert codes

但是失败了,每次它插入和失败,它给我错误的电子邮件是唯一的,没有更新现有的记录。

我能做什么?

可以使用update_or_create。

用给定的kwargs更新对象的方便方法,必要时创建一个新kwargs。

obj, created = User.objects.update_or_create(email='foo@bar.com', name='foo', salary=100)

参考https://docs.djangoproject.com/en/3.1/ref/models/querysets/#update-or-create

最新更新