File manager - Edit - /usr/local/CyberPanel/lib/python3.10/site-packages/django/db/models/sql/__pycache__/subqueries.cpython-310.pyc
Back
o �h/ � @ s| d Z ddlmZ ddlmZmZmZ ddlmZ g d�Z G dd� de�Z G dd � d e�ZG d d� de�ZG dd � d e�Z dS )zR Query subclasses which provide extra functionality beyond simple data retrieval. � )� FieldError)�CURSOR�GET_ITERATOR_CHUNK_SIZE� NO_RESULTS)�Query)�DeleteQuery�UpdateQuery�InsertQuery�AggregateQueryc @ s$ e Zd ZdZdZdd� Zdd� ZdS )r zA DELETE SQL query.�SQLDeleteCompilerc C sX || j | i| _ || _| �|��t�}|r*|� |jW d � S 1 s%w Y dS )Nr )� alias_map�where�get_compiler�execute_sqlr �rowcount)�self�tabler �using�cursor� r �U/usr/local/CyberPanel/lib/python3.10/site-packages/django/db/models/sql/subqueries.py�do_query s �zDeleteQuery.do_queryc C sl d}| � � j}tdt|�t�D ]$}| �� | �|j� d�|||t � � || j| � � j | j |d�7 }q|S )z� Set up and execute delete queries for all the objects in pk_list. More than one physical query may be executed if there are a lot of values in pk_list. r �__in)r )�get_meta�pk�range�lenr �clear_where� add_filter�attnamer �db_tabler )r �pk_listr �num_deleted�field�offsetr r r �delete_batch s � �zDeleteQuery.delete_batchN)�__name__� __module__�__qualname__�__doc__�compilerr r% r r r r r s r c s` e Zd ZdZdZ� fdd�Zdd� Z� fdd�Zd d � Zdd� Z d d� Z dd� Zdd� Z� Z S )r zAn UPDATE SQL query.�SQLUpdateCompilerc s t � j|i |�� | �� d S �N)�super�__init__�_setup_query)r �args�kwargs�� __class__r r r. 5 s zUpdateQuery.__init__c C s g | _ d| _i | _dS )z� Run on initialization and at the end of chaining. Any attributes that would normally be set in __init__() should go here instead. N)�values�related_ids�related_updates)r r r r r/ 9 s zUpdateQuery._setup_queryc s t � �� }| j�� |_|S r, )r- �cloner6 �copy)r �objr2 r r r7 B s zUpdateQuery.clonec C sT | � |� tdt|�t�D ]}| �� | �d|||t � � | �|��t� q d S )Nr �pk__in) �add_update_valuesr r r r r r r r )r r! r4 r r$ r r r �update_batchG s ��zUpdateQuery.update_batchc C s� g }|� � D ]A\}}| �� �|�}|jo|j p|j }|jjj}|r*|jr0|j r0t d| ��|| �� jur?| �|||� q|�|||f� q| � |�S )z� Convert a dictionary of field name to value mappings into an update query. This is the entry point for the public update() method on querysets. zMCannot update model field %r (only non-relations and foreign keys permitted).)�itemsr � get_field�auto_created�concrete�model�_meta�concrete_model�is_relation�many_to_manyr �add_related_update�append�add_update_fields)r r4 � values_seq�name�valr# �directrA r r r r; P s"