o
    j`d                     @   s6   d Z ddlmZ ddlmZ dZG dd dejZdS )z*
The manager class for use in the models.
    )models)PolymorphicQuerySet)PolymorphicManagerr   c                       s\   e Zd ZdZeZed fdd	Zdd Zdd Z	d	d
 Z
dd Zdd ZdddZ  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.
    Nc                    s   t  j||d}||_|S )N)
class_name)superfrom_querysetqueryset_class)clsr   r   manager	__class__ S/var/www/mitschrieb_seite/venv/lib/python3.10/site-packages/polymorphic/managers.pyr      s   z PolymorphicManager.from_querysetc                 C   s0   | j | j| j| jd}| jjjr|| j}|S )N)usinghints)r   model_db_hints_metaproxyinstance_of)selfqsr   r   r   get_queryset   s   
zPolymorphicManager.get_querysetc                 C   s   d | jj| jjS )Nz {} (PolymorphicManager) using {})formatr   __name__r   r   r   r   r   __str__#   s   zPolymorphicManager.__str__c                 C   s   |    S N)allnon_polymorphicr   r   r   r   r    *   s   z"PolymorphicManager.non_polymorphicc                 G      |   j| S r   )r   r   r   argsr   r   r   r   -      zPolymorphicManager.instance_ofc                 G   r!   r   )r   not_instance_ofr"   r   r   r   r%   0   r$   z"PolymorphicManager.not_instance_ofc                 C   s   |   j|dS )N)base_result_objects)r   get_real_instances)r   r&   r   r   r   r'   3   s   z%PolymorphicManager.get_real_instancesr   )r   
__module____qualname____doc__r   r   classmethodr   r   r   r    r   r%   r'   __classcell__r   r   r   r   r      s    r   N)r*   	django.dbr   polymorphic.queryr   __all__Managerr   r   r   r   r   <module>   s
    