
    g                     ^    d dl mZ d dlmZ d dlmZ d dlmZ  G d dej                        Z	y)    )settings)checks)FieldDoesNotExist)modelsc                   H     e Zd ZdZdZd fd	Z fdZd Zd Z fdZ	 xZ
S )	CurrentSiteManagerzDUse this to limit objects to those associated with the current site.Tc                 0    t         |           || _        y N)super__init___CurrentSiteManager__field_name)self
field_name	__class__s     u/var/www/python.vincentserveurtest.ovh/public_html/venv/lib/python3.12/site-packages/django/contrib/sites/managers.pyr   zCurrentSiteManager.__init__   s    &    c                 d    t        |   di |}|j                  | j                                |S )N )r   checkextend_check_field_name)r   kwargserrorsr   s      r   r   zCurrentSiteManager.check   s.    ((d,,./r   c                    | j                         }	 | j                  j                  j                  |      }|j                  sXt        |t        j                        s>t        j                  d| j                  j                  j                  d|d| d      gS g S # t        $ r t        j                  d|z  | d      gcY S w xY w)Nz5CurrentSiteManager could not find a field named '%s'.z
sites.E001)objidzCurrentSiteManager cannot use '.z5' 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   fields      r   r   z$CurrentSiteManager._check_field_name   s    ))+

	JJ$$..z:E !!*UV=N=N*P zz''33ZA #  	+ ! 	K !#	 	s   %B %CCc                     | j                   s9	 | j                  j                  j                  d       d| _         | j                   S | j                   S # t        $ r d| _         Y | j                   S w xY w)z.Return self.__field_name or 'site' or 'sites'.sitesites)r   r   r    r!   r   )r   s    r   r   z"CurrentSiteManager._get_field_name0   sr       +

  **62 %+!   t   	 % ,$+!    	,s   %A A0/A0c                     t        |          j                  di | j                         dz   t        j
                  iS )N__idr   )r   get_querysetfilterr   r   SITE_ID)r   r   s    r   r-   zCurrentSiteManager.get_queryset<   sB    G VK++-68H8HIK	
r   r
   )__name__
__module____qualname____doc__use_in_migrationsr   r   r   r   r-   __classcell__)r   s   @r   r   r      s*    J'
6
!
 
r   r   N)
django.confr   django.corer   django.core.exceptionsr   	django.dbr   Managerr   r   r   r   <module>r;      s!       4 :
 :
r   