← Back
Editing: query.cpython-311.pyc
� 48zjc� � �N � d Z ddlZddlZddlZddlZddlZddlZddlmZm Z ddl mZmZ ddl mZmZmZ ddlmZ ddlmZmZ ddlmZmZmZ dd lmZ dd lmZ ddlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' dd l(m)Z) ddl*m+Z+ ddl,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZH ddgZI eFd� � ZJ eFd� � ZKd� ZLd� ZM e dd� � ZN G d� d� � ZO G d � de� � ZPd'd"�ZQd#� ZRd$� ZS G d%� d&� � ZTdS )(aW Create SQL statements for QuerySets. The code in here encapsulates all of the SQL construction so that QuerySets themselves do not have to (and could be backed by things other than SQL databases). The abstraction barrier only works one way: this module has to know all about the internals of models in order to get the information it needs. � N)�Counter� namedtuple)�Iterator�Mapping)�chain�count�product)�ascii_uppercase)�FieldDoesNotExist� FieldError)�DEFAULT_DB_ALIAS�NotSupportedError�connections)�Count)� LOOKUP_SEP)�BaseExpression�Col�Exists�F�OuterRef�Ref�ResolvedOuterRef)�Field)�MultiColSource)�Lookup)�Q�check_rel_lookup_compatibility�refs_expression)�INNER�LOUTER� ORDER_DIR� ORDER_PATTERN�SINGLE)� BaseTable�Empty�Join� MultiJoin)�AND�OR� ExtraWhere�NothingNode� WhereNode)�RemovedInDjango40Warning)�cached_property)�_lazy_re_compile)�Node�Query�RawQueryz,['`\"\]\[;\s\x00-\x1F\x7F-\x9F]|#|--|/\*|\*/z[\w\-]+c �| � t t j d� | � � � D � � � � � � S )Nc 3 �P K � | ]!}|j r|j |j fn|j fV � �"d S �N)�concrete�name�attname��.0�fs �</usr/lib/python3/dist-packages/django/db/models/sql/query.py� <genexpr>z,get_field_names_from_opts.<locals>.<genexpr>= sO � � � � #� #� � !�z�8���������y�#� #� #� #� #� #� )�setr � from_iterable� get_fields)�optss r<