首页 > 数据库 >django脚本orm中使用原生sql

django脚本orm中使用原生sql

时间:2024-03-24 21:55:32浏览次数:31  
标签:recruiter messages ids django orm sql message suitable id

from django.core.management.base import BaseCommand
from chat_greeting_messages.models import Greeting
import os
from django.db import connection


class Command(BaseCommand):
    help = "Patch initialization recruiter not suitable gretting"

    def handle(self, *args, **options):
        ENV = os.environ.get("APP_ENV", "<replace_me>")
        print(ENV)
        try:
            if ENV == "production":
                print("start====")
                # exclude_not_suitable_ids = [2, 3, 4, 5, 6]

                # recruiter_ids = Greeting.objects.exclude(not_suitable_messages_id__in=exclude_not_suitable_ids).filter(
                #     message_type_id=3).values_list("recruiter_id", flat=True).distinct()

                # 执行查询
                query = """
                SELECT DISTINCT recruiter_id 
                FROM recruiter_chat_greeting_messages AS r 
                WHERE r.not_suitable_messages_id = 1 
                AND r.message_type_id = 3 
                AND NOT EXISTS (
                    SELECT 1 
                    FROM recruiter_chat_greeting_messages AS r2 
                    WHERE r2.recruiter_id = r.recruiter_id 
                    AND r2.not_suitable_messages_id IN (2,3,4,5,6)
                )
                """
                with connection.cursor() as cursor:
                    cursor.execute(query)
                    recruiter_ids = [row[0] for row in cursor.fetchall()]

                print(recruiter_ids)

                default_not_suitable_message_list = [
                    "Salary mismatch: Sorry, the expected salary in your profile does not match this job's range. Thank you for applying.",
                    "Educational qualifications mismatch: Sorry, your academic qualifications do not match this job's requirements. Thank you for applying.",
                    "Mismatch of expectations: Sorry, your profile does not match our current position requirements. Thanks for your time.",
                    "Experience mismatch: Thanks for your application, but we're looking for candidates with a different experience level for this job. We hope you'll find something that matches.",
                    "Thanks for your resume, but we have already found a candidate fo fill this role. We hope to have another vacancy that suits you.",
                ]
                for recruiter_id in recruiter_ids:
                    objects = [
                        Greeting(
                            recruiter_id=recruiter_id,
                            message=message,
                            message_type_id=3,
                            not_suitable_messages_id=index + 2,
                        )
                        for index, message in enumerate(default_not_suitable_message_list)
                    ]
                    Greeting.objects.bulk_create(objects)

        except Exception as e:
            raise e

 

标签:recruiter,messages,ids,django,orm,sql,message,suitable,id
From: https://www.cnblogs.com/kylin5201314/p/18093156

相关文章

  • 第十篇:MySQL内置函数(字符串函数|数值函数|日期函数|流程函数)
    函数就是一段写好的、具有特定功能的代码,可以被另一段程序直接调用,只要拥有编程基础。想必对函数并不陌生本篇将系统性地记录MySQL中常用的内置函数,主要分为这四大类,字符串函数数值函数日期函数流程函数一,字符串函数(一)concat(S1,S2,...Sn)<-拼接作用描述将传入......
  • 基于 HttpRunner + Django + Vue + Element UI 的接口自动化测试平台,生产可用
    LunarLink平台简介基于HttpRunner+Django+Vue+ElementUI的接口自动化测试平台,生产可用。此外,非常感谢花菜。没有AnotherFasterRunner就不会有LunarLink......
  • python趣味编程-使用 Django 和 WebSockets 的 Python 简单实时聊天室网站
    在Python中使用Django的简单实时聊天室系统该项目名为“简单实时聊天室系统”。这是一个使用Python和DjangoFramework开发的基于Web的应用程序。该应用程序是一个供随机用户使用的简单聊天室。所有人都可以在一个聊天框或对话框中进行交流。聊天消息会自动更新到所......
  • python趣味编程-使用 Django 的 Python 大学考勤管理系统
    在Python中使用Django的大学考勤管理系统该项目的名称为《大学考勤管理系统》。这是一个使用DjangoFramework用Python开发的基于Web的应用程序。该项目帮助某些大学学院存储/记录和管理学生每堂课的出勤情况。使用该应用程序,他们可以轻松列出班级学生名单并记录每......
  • 【附源码】JAVA计算机毕业设计音乐豆瓣(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,音乐作为人们日常生活中不可或缺的一部分,其获取与分享方式也在不断地变革。传统的音乐获取途径,如购买唱片或到实体音乐店挑选......
  • docker安装mysql
    1.创建本地文件夹mkdir-p/docker/mysql8/confmkdir-p/docker/mysql8/datamkdir-p/docker/mysql8/log2.新建配置文件在conf文件夹中创建文件:mysql.conf文件内容:[mysqld]init-connect="SETcollation_connection=utf8mb4_0900_ai_ci"init_connect="SETNAMESutf8......
  • linux 下安装mysql redis
    查看是否安装mysql:rpm-qa|grepmysql获取mysql版本:wget-i-chttp://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm安装:rpm-ivhmysql-community-release-el7-5.noarch.rpmyuminstallmysql-community-serversystemctlstartmysqldsystemctlrest......
  • mysql索引设计的注意事项(大量示例,收藏再看)
    mysql索引设计的注意事项(大量示例,收藏再看) 开发技术  开发技术 2019-03-29 8362次浏览目录一、索引的重要性二、执行计划上的重要关注点(1).全表扫描,检索行数(2).key,usingindex(覆盖索引)(3).通过key_len确定究竟使用了复合索引的几个索引字段(4)orderby和U......
  • MyBatis3源码深度解析(二十一)动态SQL实现原理(二)动态SQL解析过程、#{}和${}的区别
    文章目录前言8.5动态SQL解析过程8.5.1SQL配置转换为SqlSource对象8.5.2SqlSource转换为静态SQL语句8.6#{}和${}的区别8.7小结前言在【MyBatis3源码深度解析(二十)动态SQL实现原理(一)动态SQL的核心组件】中研究了MyBatis动态SQL相关的组件,如SqlSource用于描述......
  • 源码!大学生兼职跟踪系统ssm+vue+mysql
    大学生兼职跟踪系统java+ssm+vue+mysql摘要演示视频系统开发流程系统结构设计系统主要功能介绍管理员功能模块个人中心商家管理学生管理兼职招聘管理兼职应聘管理论坛管理学生前后台功能模块兼职招聘兼职论坛开发环境后端:前端:数据库:!!!有需要的小伙伴可以点击下方链接直......