î
ªÍ X¸  ã               @   sÒ   d  d l  m Z d  d l m Z m Z m Z m Z d  d l m Z d  d l	 m
 Z
 d  d l m Z d Z d Z d Z d	 Z e e d
 d „ ƒ Z e e d d „ ƒ Z e e d d „ ƒ Z e e d d „ ƒ Z d S)é    )Úhttp)ÚContextÚEngineÚTemplateDoesNotExistÚloader)Úsix)Ú
force_text)Úrequires_csrf_tokenz404.htmlz403.htmlz400.htmlz500.htmlc       	      C   sü   | j  j } y | j d } Wn t t f k
 r7 Yn Xt | t j ƒ rS | } n  i |  j d 6| d 6} y+ t	 j
 | ƒ } | j | |  ƒ } d } WnQ t k
 rè | t k r· ‚  n  t ƒ  j d ƒ } | j t | ƒ ƒ } d } Yn Xt j | d | ƒS)aB  
    Default 404 handler.

    Templates: :template:`404.html`
    Context:
        request_path
            The path of the requested URL (e.g., '/app/pages/bad_page/')
        exception
            The message from the exception which triggered the 404 (if one was
            supplied), or the exception class name
    r   Úrequest_pathÚ	exceptionNz[<h1>Not Found</h1><p>The requested URL {{ request_path }} was not found on this server.</p>z	text/htmlÚcontent_type)Ú	__class__Ú__name__ÚargsÚAttributeErrorÚ
IndexErrorÚ
isinstancer   Ú	text_typeÚpathr   Úget_templateÚrenderr   ÚERROR_404_TEMPLATE_NAMEr   Zfrom_stringr   r   ZHttpResponseNotFound)	Úrequestr   Útemplate_nameZexception_reprÚmessageÚcontextÚtemplateÚbodyr   © r   úC/home/ubuntu/projects/ifolica/build/django/django/views/defaults.pyÚpage_not_found   s,    	


		r    c             C   s`   y t  j | ƒ } Wn7 t k
 rL | t k r5 ‚  n  t j d d d ƒSYn Xt j | j ƒ  ƒ S)zS
    500 error handler.

    Templates: :template:`500.html`
    Context: None
    z<h1>Server Error (500)</h1>r   z	text/html)r   r   r   ÚERROR_500_TEMPLATE_NAMEr   ZHttpResponseServerErrorr   )r   r   r   r   r   r   Úserver_error;   s    r"   c             C   s`   y t  j | ƒ } Wn7 t k
 rL | t k r5 ‚  n  t j d d d ƒSYn Xt j | j ƒ  ƒ S)zS
    400 error handler.

    Templates: :template:`400.html`
    Context: None
    z<h1>Bad Request (400)</h1>r   z	text/html)r   r   r   ÚERROR_400_TEMPLATE_NAMEr   ZHttpResponseBadRequestr   )r   r   r   r   r   r   r   Úbad_requestM   s    r$   c             C   sy   y t  j | ƒ } Wn7 t k
 rL | t k r5 ‚  n  t j d d d ƒSYn Xt j | j d |  d i t | ƒ d 6ƒ ƒ S)zæ
    Permission denied (403) handler.

    Templates: :template:`403.html`
    Context: None

    If the template does not exist, an Http403 response containing the text
    "403 Forbidden" (as per RFC 7231) will be returned.
    z<h1>403 Forbidden</h1>r   z	text/htmlr   r   r   )r   r   r   ÚERROR_403_TEMPLATE_NAMEr   ZHttpResponseForbiddenr   r   )r   r   r   r   r   r   r   Úpermission_deniedc   s    r&   N)Zdjangor   Zdjango.templater   r   r   r   Zdjango.utilsr   Zdjango.utils.encodingr   Zdjango.views.decorators.csrfr	   r   r%   r#   r!   r    r"   r$   r&   r   r   r   r   Ú<module>   s    "*