Login

Message exception

Author:
marinho
Posted:
October 14, 2008
Language:
Python
Version:
1.0
Tags:
http redirect message exception
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. Message Exception by mulamvenky 1 year, 10 months ago
  2. Mask sensitive POST fields in error e-mails by derivin 7 years ago
  3. Doing redirect without request by diverman 4 years, 6 months ago
  4. Severity codes in user messages by cconnell 6 years, 2 months ago
  5. keywords arguments parser for custom template tags by bruno 6 years, 2 months 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.