diff options
Diffstat (limited to 'django/middleware/common.py')
| -rw-r--r-- | django/middleware/common.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/django/middleware/common.py b/django/middleware/common.py index 763918878a..acd3233e1d 100644 --- a/django/middleware/common.py +++ b/django/middleware/common.py @@ -3,7 +3,7 @@ from django import http from django.core.mail import mail_managers import md5, os -class CommonMiddleware: +class CommonMiddleware(object): """ "Common" middleware for taking care of some basic operations: @@ -39,6 +39,8 @@ class CommonMiddleware: # trailing slash or a file extension. if settings.APPEND_SLASH and (old_url[1][-1] != '/') and ('.' not in old_url[1].split('/')[-1]): new_url[1] = new_url[1] + '/' + if settings.DEBUG and request.META['REQUEST_METHOD'].lower() == 'post': + raise RuntimeError, "You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to %s%s (note the trailing slash), or set APPEND_SLASH=False in your Django settings." % (new_url[0], new_url[1]) if new_url != old_url: # Redirect if new_url[0]: |
