为了账号安全,请及时绑定邮箱和手机立即绑定

在导入功能中更新或创建

在导入功能中更新或创建

慕田峪9158850 2023-03-08 15:35:35
我正在以 json 格式数据从外部源导入数据。我在 Person 模型中获取和保存数据,我想更新已经存在的模型,所以我使用 update_or_create 方法但在导入期间我收到错误: django.db.utils.IntegrityError: UNIQUE constraint failed: managment_person.person_id。person_id必须是独一无二的。模范人物class Person(models.Model):    person_id = models.PositiveIntegerField(unique=True)    code = models.CharField(max_length=255)    name = models.CharField(max_length=255)    def __str__(self):        return self.name这是为 Person 模型导入数据的函数:    def get_persons(self):        r = requests.get('https://path_to_data_in_json')        for obj in r.json()['data']:            person, created = Person.objects.update_or_create(person_id=obj['id'], code=obj['code'], name=obj['name'])
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

来自关于update_or_create的文档

update_or_create 方法尝试根据给定的 kwargs 从数据库中获取对象。如果找到匹配项,它会更新默认字典中传递的字段。


obj, created = Person.objects.update_or_create(
    first_name='John', last_name='Lennon',
    defaults={'first_name': 'Bob'},
)

您应该相应地编辑默认值


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号