File: //usr/lib/python3/dist-packages/django/contrib/sites/__pycache__/managers.cpython-310.pyc
o
Ɏ�_� � @ sF d dl mZ d dlmZ d dlmZ d dlmZ G dd� dej�Z dS )� )�settings)�checks)�FieldDoesNotExist)�modelsc sN e Zd ZdZdZd� fdd� Z� fdd�Zdd � Zd
d� Z� fdd
�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__� �?/usr/lib/python3/dist-packages/django/contrib/sites/managers.pyr s
zCurrentSiteManager.__init__c s$ t � jdi |��}|�| �� � |S )Nr )r �check�extend�_check_field_name)r �kwargs�errorsr
r r r s zCurrentSiteManager.checkc C sz | � � }z | jj�|�}W n ty! tjd| | dd�g Y S w |js;t|t j
�s;tjd| jjj|f | dd�gS 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 sz | jj�d� W n ty 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 � �� jdi | �� d tji��S )N�__idr )r �get_queryset�filterr r �SITE_IDr$ r
r r r&