3
Ah`                 @   sZ   d dl Z d dlZd dlmZ d dlmZ d dlmZ G dd dej	Z
G dd de
ZdS )	    N)settings)models)gettext_lazyc                   s   e Zd ZdZejeddddZeje	j
dejeddZejed	dd
ZG dd dZ fddZedd Zdd Z  ZS )Tokenz0
    The default authorization token model.
    ZKey(   T)
max_lengthZprimary_keyZ
auth_tokenZUser)Zrelated_nameZ	on_deleteverbose_nameCreated)Zauto_now_addc               @   s&   e Zd ZdejkZedZedZdS )z
Token.Metazrest_framework.authtokenr   ZTokensN)	__name__
__module____qualname__r   INSTALLED_APPSabstract_r   Zverbose_name_plural r   r   N/tmp/pip-build-9m32_hle/djangorestframework/rest_framework/authtoken/models.pyMeta   s   
r   c                s   | j s| j | _ t j||S )N)keygenerate_keysupersave)selfargskwargs)	__class__r   r   r      s    
z
Token.savec             C   s   t jtjdj S )N   )binasciihexlifyosurandomdecode)clsr   r   r   r   #   s    zToken.generate_keyc             C   s   | j S )N)r   )r   r   r   r   __str__'   s    zToken.__str__)r
   r   r   __doc__r   Z	CharFieldr   r   ZOneToOneFieldr   ZAUTH_USER_MODELZCASCADEuserZDateTimeFieldcreatedr   r   classmethodr   r"   __classcell__r   r   )r   r   r   	   s   
r   c               @   s*   e Zd ZdZedd ZG dd dZdS )
TokenProxyz7
    Proxy mapping pk to user pk for use in admin.
    c             C   s   | j S )N)Zuser_id)r   r   r   r   pk/   s    zTokenProxy.pkc               @   s$   e Zd ZdejkZdejkZdZdS )zTokenProxy.Metazrest_framework.authtokentokenN)r
   r   r   r   r   proxyr   r   r   r   r   r   r   3   s   

r   N)r
   r   r   r#   propertyr)   r   r   r   r   r   r(   +   s   r(   )r   r   Zdjango.confr   Z	django.dbr   Zdjango.utils.translationr   r   ZModelr   r(   r   r   r   r   <module>   s   "