3
g                 @   s@   d Z ddlmZ ddlmZ ddlmZ dZG dd deZdS )	z#
Cached, database-backed sessions.
    )settings)SessionStore)cachesz!django.contrib.sessions.cached_dbc                   sj   e Zd ZdZeZd fdd	Zedd Zdd Z	 fd	d
Z
d fdd	Zd fdd	Zdd Z  ZS )r   z5
    Implement cached, database backed sessions.
    Nc                s   t tj | _t j| d S )N)r   r   ZSESSION_CACHE_ALIAS_cachesuper__init__)selfsession_key)	__class__ h/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/contrib/sessions/backends/cached_db.pyr      s    zSessionStore.__init__c             C   s   | j | j  S )N)cache_key_prefixZ_get_or_create_session_key)r   r   r   r   	cache_key   s    zSessionStore.cache_keyc             C   sr   y| j j| j}W n tk
r*   d }Y nX |d krn| j }|rj| j|j}| j j| j|| j|j	d ni }|S )N)Zexpiry)
r   getr   	ExceptionZ_get_session_from_dbdecodeZsession_datasetget_expiry_ageZexpire_date)r   datasr   r   r   load   s    
zSessionStore.loadc                s    |r| j | | jkpt j|S )N)r   r   r   exists)r   r	   )r
   r   r   r   +   s    zSessionStore.existsFc                s(   t  j| | jj| j| j| j  d S )N)r   saver   r   r   _sessionr   )r   Zmust_create)r
   r   r   r   .   s    zSessionStore.savec                s>   t  j| |d kr(| jd kr"d S | j}| jj| j|  d S )N)r   deleter	   r   r   )r   r	   )r
   r   r   r   2   s    
zSessionStore.deletec             C   s   | j   | j| j d| _dS )zc
        Remove the current session data from the database and regenerate the
        key.
        N)clearr   r	   Z_session_key)r   r   r   r   flush:   s    zSessionStore.flush)N)F)N)__name__
__module____qualname____doc__
KEY_PREFIXr   r   propertyr   r   r   r   r   r   __classcell__r   r   )r
   r   r      s   r   N)	r    Zdjango.confr   Z#django.contrib.sessions.backends.dbr   ZDBStoreZdjango.core.cacher   r!   r   r   r   r   <module>   s
   