a
    5Xh                     @   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__ b/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/django/contrib/sites/managers.pyr	      s    
zCurrentSiteManager.__init__c                    s$   t  jf i |}||   |S r   )r   checkextend_check_field_name)r   kwargserrorsr   r   r   r      s    zCurrentSiteManager.checkc                 C   sz   |   }z| jj|}W n( tyB   tjd| | ddg Y S 0 |jsvt|t	j
svt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   ErrorZmany_to_many
isinstancer   Z
ForeignKeyZobject_name)r   r   fieldr   r   r   r      s,    
	
z$CurrentSiteManager._check_field_namec                 C   s>   | j s8z| jjd W n ty0   d| _ Y n0 d| _ | j S )z.Return self.__field_name or 'site' or 'sites'.sitesites)r
   r   r   r   r   r   r   r   r   r   0   s    z"CurrentSiteManager._get_field_namec                    s$   t   jf i |  d tjiS )NZ__id)r   get_querysetfilterr   r   ZSITE_IDr!   r   r   r   r"   <   s    zCurrentSiteManager.get_queryset)N)__name__
__module____qualname____doc__Zuse_in_migrationsr	   r   r   r   r"   __classcell__r   r   r   r   r      s   r   N)
Zdjango.confr   Zdjango.corer   Zdjango.core.exceptionsr   Z	django.dbr   Managerr   r   r   r   r   <module>   s   