
    h                     N    d Z ddlmZ ddlmZ dZ G d dej                        Zy)z*
The manager class for use in the models.
    )models)PolymorphicQuerySet)PolymorphicManagerr   c                   X     e Zd ZdZeZed	 fd	       Zd Zd Z	d Z
d Zd Zd	dZ xZS )
r   z
    Manager for PolymorphicModel

    Usually not explicitly needed, except if a custom manager or
    a custom queryset class is to be used.
    c                 8    t         |   ||      }||_        |S )N)
class_name)superfrom_querysetqueryset_class)clsr   r   manager	__class__s       D/home/dcms/DCMS/lib/python3.12/site-packages/polymorphic/managers.pyr
   z PolymorphicManager.from_queryset   s$    '':'N!/    c                     | j                  | j                  | j                  | j                        }| j                  j                  j
                  r|j                  | j                        }|S )N)usinghints)r   model_db_hints_metaproxyinstance_of)selfqss     r   get_querysetzPolymorphicManager.get_queryset   sO      4884;; O::!!

+B	r   c                 `    | j                   j                   d| j                  j                   S )Nz (PolymorphicManager) using )r   __name__r   r   s    r   __str__zPolymorphicManager.__str__#   s.    ~~&&''CDDWDWD`D`Cab	
r   c                 >    | j                         j                         S N)allnon_polymorphicr   s    r   r$   z"PolymorphicManager.non_polymorphic)   s    xxz))++r   c                 <     | j                         j                  | S r"   )r#   r   r   argss     r   r   zPolymorphicManager.instance_of,   s    %txxz%%t,,r   c                 <     | j                         j                  | S r"   )r#   not_instance_ofr&   s     r   r)   z"PolymorphicManager.not_instance_of/   s    )txxz))400r   c                 B    | j                         j                  |      S )N)base_result_objects)r#   get_real_instances)r   r+   s     r   r,   z%PolymorphicManager.get_real_instances2   s    xxz,,AT,UUr   r"   )r   
__module____qualname____doc__r   r   classmethodr
   r   r    r$   r   r)   r,   __classcell__)r   s   @r   r   r      s@     )N 
,-1Vr   r   N)r/   	django.dbr   polymorphic.queryr   __all__Managerr    r   r   <module>r7      s)     1
7'V 'Vr   