您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页django中更新数据库字段的不同实现方法案列

django中更新数据库字段的不同实现方法案列

来源:华佗小知识
#获取对象
tid_if=AnswerRecord.objects.filter(t_id=topic_id,q_id=quest_id)
#判断对象是否为空
if tid_if:
    #有数据时更新数据
    AnswerRecord.objects.filter(t_id=topic_id,q_id=quest_id).update(score=quest_score)
    
else:
    没有数据时新建数据
    AnswerRecord.objects.create(t_id=topic_id,q_id=quest_id,score=quest_score)

整理成

AnswerRecord.objects.update_or_create(
    t_id=topic_id,#判断条件
    q_id=quest_id,#判断条件
    defaults={'score':quest_score}#更新对象
    )

可以带上filter()等返回Queryset的方法,不要使用get()方法,因为返回的不是queryset对象

tips:

当开始实现不同的代码效率时,我觉得python和dajango入门了

create()

绝对新增,一定执行新增一条记录

get_or_creare()

判断记录,有就不新增,没有新增记录.和update_or_createb用法不同之处在于defaults可以为空,

update_or_create

判断记录,如果有就更新指定字段值,没有就新增记录

update()

纯粹更新

delete()

删除,可配合返回queryset的方法使用.

个人觉得比save()方法更灵活!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务