美文网首页django
Django-17 F对象和Q对象

Django-17 F对象和Q对象

作者: JuliusL | 来源:发表于2021-07-16 21:56 被阅读0次

    F对象

    • 一个F对象代表数据库中某条记录的字段的信息
    • 作用
      • 解决资源竞争问题
      • 通常是对数据库中的字段值在不获取的情况下进行操作
      • 用于类属性(字段)之间的比较
    • 语法
    from django.db.models import F
    F('列名')
    
    • 示例2
      对数据库中两个字段值进行比较,列出哪儿些书的零售价高于定价?
    from django.db.models import F
    from bookstore.models import Book
    books = Book.objects.filter(market_price__gt=F('price'))
    # SELECT * FROM bookstore_book WHERE book_store.market_price > bookstore.price
    

    Q对象

    当前获取查询结果集使用复杂的逻辑或|、逻辑非~等操作时可以借助Q对象进行操作
    如:想找出定价低于20元 或 清华大学出版社的全部书,可以写成

    from django.db.models import Q
    Book.objects.filter(Q(price__lt=20)|Q(pub="清华大学出版社"))
    

    Q(条件1)|Q(条件2) 条件1成立或条件2成立
    Q(条件1)&Q(条件2) 条件1和条件2同时成立
    Q(条件1)&~Q(条件2) 条件1成立且条件2不成立

    相关文章

      网友评论

        本文标题:Django-17 F对象和Q对象

        本文链接:https://www.haomeiwen.com/subject/pwnspltx.html