我想用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