Login

Message exception

Author:
marinho
Posted:
October 14, 2008
Language:
Python
Version:
1.0
Score:
1 (after 1 ratings)

This exception is util when you want to raise an exception but want its message be shown as a message to the user, with no error 500 or 404 pages.

To use it, just append the middleware in the MIDDLEWARE_CLASSES setting and raises HttpMessage when necessary.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from django.http import HttpResponseRedirect

class HttpMessageMiddleware(object):
    def process_exception(self, request, exception):
        if request.user.is_authenticated():
            request.user.message_set.create(message=unicode(exception))
            return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))

class HttpMessage(Exception):
    pass

More like this

  1. Auto upload_to path generator by junaidmgithub 4 hours, 54 minutes ago
  2. LazyPrimaryKeyRelatedField by LLyaudet 1 week ago
  3. CacheInDictManager by LLyaudet 1 week ago
  4. MYSQL Full Text Expression by Bidaya0 1 week, 1 day ago
  5. Custom model manager chaining (Python 3 re-write) by Spotted1270 2 weeks, 1 day ago

Comments

amitu (on October 15, 2008):

It can go in infinite loop. May be some query string parameter can be used to circumvent that.

#

guettli (on October 30, 2008):

This recipe catches all errors. "except HttpMessage" is missing in process_exception().

#

Please login first before commenting.