o
    Mf                     @   sF   d dl mZ d dlmZ d dlmZ d dlmZ G dd dejZ	dS )    )settings)checks)FieldDoesNotExist)modelsc                       sN   e Zd ZdZdZd fdd	Z fddZdd	 Zd
d Z fddZ	  Z
S )CurrentSiteManagerzDUse this to limit objects to those associated with the current site.TNc                    s   t    || _d S N)super__init___CurrentSiteManager__field_name)self
field_name	__class__ _/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/django/contrib/sites/managers.pyr	      s   

zCurrentSiteManager.__init__c                    s$   t  jdi |}||   |S )Nr   )r   checkextend_check_field_name)r   kwargserrorsr   r   r   r      s   zCurrentSiteManager.checkc                 C   sz   |   }z	| jj|}W n ty!   tjd| | ddg Y S w |js;t|t	j
s;tjd| jjj|f | ddgS g S )Nz5CurrentSiteManager could not find a field named '%s'.z
sites.E001)objidzYCurrentSiteManager cannot use '%s.%s' as it is not a foreign key or a many-to-many field.z
sites.E002)_get_field_namemodel_meta	get_fieldr   r   Errormany_to_many
isinstancer   
ForeignKeyobject_name)r   r   fieldr   r   r   r      s*   	

z$CurrentSiteManager._check_field_namec                 C   sB   | j sz	| jjd W n ty   d| _ Y | j S w d| _ | j S )z0 Return self.__field_name or 'site' or 'sites'. sitesites)r
   r   r   r   r   r   r   r   r   r   /   s   z"CurrentSiteManager._get_field_namec                    s$   t   jdi |  d tjiS )N__idr   )r   get_querysetfilterr   r   SITE_IDr$   r   r   r   r&   ;   s   $zCurrentSiteManager.get_querysetr   )__name__
__module____qualname____doc__use_in_migrationsr	   r   r   r   r&   __classcell__r   r   r   r   r      s    r   N)
django.confr   django.corer   django.core.exceptionsr   	django.dbr   Managerr   r   r   r   r   <module>   s
    