091:QuerySet API详解-update和delete

Posted zheng-weimin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了091:QuerySet API详解-update和delete相关的知识,希望对你有一定的参考价值。

QuerySet API详解-update和delete:

update :执行更新操作,在 SQL 底层走的也是 update 命令。比如要将所有 图书的价格提高五元。示例代码如下:

    Book.objects.update(price=F("price") + 5)
    # 对比一下上下两种方式
    # books = Book.objects.all()
    # for item in books:
    #     item.price += 5
    #     item.save()

注意这个方法走的是更新的逻辑。所以更新完成后保存到数据库中不会执行 save 方法,因此不会更新 auto_now 设置的字段。

delete :删除所有满足条件的数据。删除数据的时候,要注意 on_delete 指定的处理方式(是否是级联删除——实际中是一个flag标记)。

# 慎用啊
Author.objects.filter(name="罗贯中").delete()

实例截图:

技术分享图片

 

以上是关于091:QuerySet API详解-update和delete的主要内容,如果未能解决你的问题,请参考以下文章

092:QuerySet API详解-切片操作

079:Django数据库QuerySet API详解-filterexcludeannotate

081:QuerySet API详解-values和values_list

090:QuerySet API详解-distinct

87.QuerySet API使用详解:create方法

089:QuerySet API详解-count和exists