ó
øĒTQc           @   sM   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   settings(   t   models(   t   FieldDoesNotExistt   CurrentSiteManagerc           B   s,   e  Z d  Z d d  Z d   Z d   Z RS(   sD   Use this to limit objects to those associated with the current site.c         C   s)   t  t |   j   | |  _ t |  _ d  S(   N(   t   superR   t   __init__t   _CurrentSiteManager__field_namet   Falset!   _CurrentSiteManager__is_validated(   t   selft
   field_name(    (    s6   ../Django//lib/python/django/contrib/sites/managers.pyR      s    	c         C   s0  |  j  j j   } |  j d  k	 r^ |  j | k r^ t d |  j j |  j |  j  j j f   n9 x6 d d g D]( } | | k rk | |  _ t	 |  _
 Pqk qk WyM |  j  j j |  j  } t | t j t j f  sã t d |  j   n  Wn< t k
 r"t d |  j j |  j |  j  j j f   n Xt	 |  _
 d  S(   Ns(   %s couldn't find a field named %s in %s.t   sitet   sitess+   %s must be a ForeignKey or ManyToManyField.(   t   modelt   _metat   get_all_field_namesR   t   Nonet
   ValueErrort	   __class__t   __name__t   object_namet   TrueR   t	   get_fieldt
   isinstanceR   t
   ForeignKeyt   ManyToManyFieldt	   TypeErrorR   (   R	   t   field_namest   potential_namet   field(    (    s6   ../Django//lib/python/django/contrib/sites/managers.pyt   _validate_field_name   s"    (		)c         C   sC   |  j  s |  j   n  t t |   j   j i t j |  j d 6  S(   Nt   __id__exact(	   R   R   R   R   t   get_query_sett   filterR    t   SITE_IDR   (   R	   (    (    s6   ../Django//lib/python/django/contrib/sites/managers.pyR    &   s    	N(   R   t
   __module__t   __doc__R   R   R   R    (    (    (    s6   ../Django//lib/python/django/contrib/sites/managers.pyR      s   	N(   t   django.confR    t	   django.dbR   t   django.db.models.fieldsR   t   ManagerR   (    (    (    s6   ../Django//lib/python/django/contrib/sites/managers.pyt   <module>   s   