Ñò
n¶YKc        	   @   sÑ   d  d k  l Z d  d k l Z d  d k l Z d  d k l Z l	 Z	 l
 Z
 l Z d  d k l Z d  d k l Z d „  Z e i i e ƒ d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t
   copycompat(   t   settings(   t   router(   t   QuerySett   EmptyQuerySett   insert_queryt   RawQuerySet(   t   signals(   t   FieldDoesNotExistc         K   sA  |  } | i  i o d St | d d ƒ p` y' | i  i d ƒ t d | i ƒ ‚ Wn t j
 o n X| i d t	 ƒ  ƒ | i
 | _ n³ t | d d ƒ pŸ | i i } | t	 j p t | d t ƒ o | i | _ q=xP | i ƒ  d D]> } | t	 j p t | d t ƒ o | i d | ƒ  ƒ d Sqë Wt d ƒ ‚ n d S(	   s  
    Ensures that a Model subclass contains a default manager  and sets the
    _default_manager attribute on the class. Also sets up the _base_manager
    points to a plain Manager instance (which could be the same as
    _default_manager if it's not a subclass of Manager).
    Nt   _default_managert   objectssN   Model %s must specify a custom Manager, because it has a field named 'objects't   _base_managert   use_for_related_fieldsi   sY   Should never get here. Please report a bug, including your model and model manager setup.(   t   _metat   abstractt   getattrt   Nonet	   get_fieldt
   ValueErrort   __name__R   t   add_to_classt   ManagerR
   R   R	   t	   __class__t   Falset   mrot   AssertionError(   t   sendert   kwargst   clst   default_mgrt
   base_class(    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   ensure_default_manager	   s.     	R   c           B   sm  e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „  ƒ Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d  „  Z# d! „  Z$ d" „  Z% d# „  Z& d$ „  Z' d% „  Z( d' d& „ Z* RS((   i    c         C   s<   t  t |  ƒ i ƒ  |  i ƒ  d  |  _ t |  _ d  |  _ d  S(   N(	   t   superR   t   __init__t   _set_creation_counterR   t   modelR   t
   _inheritedt   _db(   t   self(    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR!   2   s
    
		c         C   sÄ   | |  _  t | | t |  ƒ ƒ t | d d  ƒ p |  i | i i j  o |  | _ n | i i p |  i	 o4 |  i  i i
 o# | i i i |  i | |  f ƒ n  | i i i |  i | |  f ƒ d  S(   NR	   (   R#   t   setattrt   ManagerDescriptorR   R   t   creation_counterR	   R   R   R$   t   proxyt   abstract_managerst   appendt   concrete_managers(   R&   R#   t   name(    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   contribute_to_class9   s    	*(c         C   s   t  i |  _ t  i d 7_ d S(   sp   
        Sets the creation counter value for this instance and increments the
        class-level copy.
        i   N(   R   R)   (   R&   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR"   F   s    c         C   sI   t  | |  i ƒ p t ‚ t i |  ƒ } | i ƒ  | | _ t | _ | S(   sÄ   
        Makes a copy of the manager and assigns it to 'model', which should be
        a child of the existing model (used when inheriting a manager from an
        abstract base class).
        (   t
   issubclassR#   R   t   copyR"   t   TrueR$   (   R&   R#   t   mgr(    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   _copy_to_modelN   s    
		c         C   s   t  i  |  ƒ } | | _ | S(   N(   R1   R%   (   R&   t   usingt   obj(    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt
   db_manager[   s    	c         C   s   |  i  p t i |  i ƒ S(   N(   R%   R   t   db_for_readR#   (   R&   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   db`   s    c         C   s   t  |  i d |  i ƒS(   NR5   (   R   R#   R%   (   R&   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   get_empty_query_seth   s    c         C   s   t  |  i d |  i ƒS(   s…   Returns a new QuerySet object.  Subclasses can override this method
        to easily customize the behavior of the Manager.
        R5   (   R   R#   R%   (   R&   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   get_query_setk   s    c         C   s
   |  i  ƒ  S(   N(   R:   (   R&   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   noneq   s    c         C   s
   |  i  ƒ  S(   N(   R;   (   R&   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   allt   s    c         C   s   |  i  ƒ  i ƒ  S(   N(   R;   t   count(   R&   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR>   w   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   dates(   R&   t   argsR   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR?   z   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   distinct(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRA   }   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   extra(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRB   €   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   get(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRC   ƒ   s    c         K   s   |  i  ƒ  i |   S(   N(   R;   t   get_or_create(   R&   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRD   †   s    c         K   s   |  i  ƒ  i |   S(   N(   R;   t   create(   R&   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRE   ‰   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   filter(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRF   Œ   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t	   aggregate(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRG      s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   annotate(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRH   ’   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   complex_filter(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRI   •   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   exclude(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRJ   ˜   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   in_bulk(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRK   ›   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   iterator(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRL   ž   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   latest(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRM   ¡   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   order_by(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRN   ¤   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   select_related(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRO   §   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   values(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRP   ª   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   values_list(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRQ   ­   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   update(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRR   °   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   reverse(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRS   ³   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   defer(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRT   ¶   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   only(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRU   ¹   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   R5   (   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR5   ¼   s    c         O   s   |  i  ƒ  i | | Ž  S(   N(   R;   t   exists(   R&   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRV   ¿   s    c         K   s   t  |  i | |  S(   N(   R   R#   (   R&   RP   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   _insertÂ   s    c         K   s   |  i  ƒ  i | |  S(   N(   R;   t   _update(   R&   RP   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRX   Å   s    c         O   s+   t  d | d |  i d | d |  i | | Ž S(   Nt	   raw_queryR#   t   paramsR5   (   R   R#   R%   (   R&   RY   RZ   R@   R   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   rawÈ   s    N(+   R   t
   __module__R)   R!   R/   R"   R4   R7   t   propertyR9   R:   R;   R<   R=   R>   R?   RA   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   RM   RN   RO   RP   RQ   RR   RS   RT   RU   R5   RV   RW   RX   R   R[   (    (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR   .   sN   																																				R(   c           B   s   e  Z d  „  Z d d „ Z RS(   c         C   s   | |  _  d  S(   N(   t   manager(   R&   R^   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR!   Î   s    c         C   s+   | d  j o t d | i ƒ ‚ n |  i S(   Ns)   Manager isn't accessible via %s instances(   R   t   AttributeErrorR   R^   (   R&   t   instancet   type(    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   __get__Ñ   s    N(   R   R\   R!   R   Rb   (    (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR(   Ë   s   	t   EmptyManagerc           B   s   e  Z d  „  Z RS(   c         C   s
   |  i  ƒ  S(   N(   R:   (   R&   (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyR;   ×   s    (   R   R\   R;   (    (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyRc   Ö   s   N(   t   django.utilsR    R1   t   django.confR   t	   django.dbR   t   django.db.models.queryR   R   R   R   t   django.db.modelsR   t   django.db.models.fieldsR   R   t   class_preparedt   connectt   objectR   R(   Rc   (    (    (    sB   /usr/local/lib/python2.6/dist-packages/django/db/models/manager.pyt   <module>   s   "	#