zoukankan      html  css  js  c++  java
  • 064:ORM查询条件详解-in和关联模型查询

    ORM查询条件详解-in和关联模型查询:

    in:
    提取那些给定的 field 的值是否在给定的容器中。容器可以为 list 、 tuple 或者任何一个可以迭代的对象,包括 QuerySet 对象。示例代码如下:

    result = Article.objects.filter(id__in=[1,4,5])

    以上代码在翻译成 SQL 语句为如下:

    SELECT `article`.`id`, `article`.`title`, `article`.`content`, `article`.`category_id` FROM `article` WHERE `article`.`id` IN (1, 4, 5)

    实例截图如下:

    当然也可以传递一个 QuerySet 对象进去。示例代码如下:

        # 所有标题中包含fuck的分类:
        articles = Article.objects.filter(title__icontains='fuck')
        results = Category.objects.filter(article__in=articles)
        for item in results:
            print(item)
        print("#########以下是对应的SQL语句#########")
        print(results.query)

    以上代码的意思是获取那些文章标题包含 hello 的所有分类。将翻译成以下 SQL 语句,示例代码如下:

    SELECT `category`.`id`, `category`.`name` FROM `category` INNER JOIN `article` ON (`category`.`id` = `article`.`category_id`) WHERE `article`.`id` IN (SELECT U0.`id` FROM `article` U0 WHERE U0.`title` LIKE %fuck%)

    具体截图如下:

    related_query_name的书写方式:
     
  • 相关阅读:
    008 同步
    007 优雅的关闭线程
    006 线程中的join方法
    005 线程ID和线程的优先级
    004 后台线程
    003 Thread的构造
    群发 图片和语音失败原因是 ,返回 content是 null,
    状态,
    Shape Of My Heart
    转码 的状态,嘿嘿,小bug,少了一个 !
  • 原文地址:https://www.cnblogs.com/zheng-weimin/p/10230245.html
Copyright © 2011-2022 走看看