• 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的书写方式:
     
  • 相关阅读:
    jquery mobile
    可能用到的负边距应用
    兼容性问题
    less和scss
    函数的继承
    关于canvas
    html5表单属性
    html代码
    git 拉取远程分支 --本地分支不存在
    git 删除分支
  • 原文地址:https://www.cnblogs.com/zheng-weimin/p/10230245.html
Copyright © 2020-2023  润新知