ó
Ūâ0_c           @  sm   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m	 Z	 d e	 j
 f d     YZ d S(	   iĸĸĸĸ(   t   unicode_literals(   t   settings(   t   checks(   t   FieldDoesNotExist(   t   modelst   CurrentSiteManagerc           B  sD   e  Z d  Z e Z d d  Z d   Z d   Z d   Z	 d   Z
 RS(   uD   Use this to limit objects to those associated with the current site.c         C  s    t  t |   j   | |  _ d  S(   N(   t   superR   t   __init__t   _CurrentSiteManager__field_name(   t   selft
   field_name(    (    s?   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/sites/managers.pyR      s    c         K  s/   t  t |   j |   } | j |  j    | S(   N(   R   R   t   checkt   extendt   _check_field_name(   R	   t   kwargst   errors(    (    s?   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/sites/managers.pyR      s    c         C  sĶ   |  j    } y |  j j j |  } Wn. t k
 rU t j d | d |  d d g SX| j rĒ t | t	 j
  rĒ t j d |  j j j | f d |  d d g Sg  S(   Nu5   CurrentSiteManager could not find a field named '%s'.t   objt   idu
   sites.E001uY   CurrentSiteManager cannot use '%s.%s' as it is not a foreign key or a many-to-many field.u
   sites.E002(   t   _get_field_namet   modelt   _metat	   get_fieldR   R   t   Errort   many_to_manyt
   isinstanceR   t
   ForeignKeyt   object_name(   R	   R
   t   field(    (    s?   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/sites/managers.pyR      s    

c         C  sP   |  j  sI y |  j j j d  Wn t k
 r< d |  _  qI Xd |  _  n  |  j  S(   u0    Return self.__field_name or 'site' or 'sites'. u   siteu   sites(   R   R   R   R   R   (   R	   (    (    s?   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/sites/managers.pyR   2   s    	c         C  s0   t  t |   j   j i t j |  j   d 6  S(   Nu   __id(   R   R   t   get_querysett   filterR   t   SITE_IDR   (   R	   (    (    s?   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/sites/managers.pyR   >   s    N(   t   __name__t
   __module__t   __doc__t   Truet   use_in_migrationst   NoneR   R   R   R   R   (    (    (    s?   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/sites/managers.pyR   
   s   			N(   t
   __future__R    t   django.confR   t   django.coreR   t   django.core.exceptionsR   t	   django.dbR   t   ManagerR   (    (    (    s?   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/sites/managers.pyt   <module>   s
   