Skip to content

Commit

Permalink
Solved the POST-data-lost-after-redirect problem by raising RuntimeEr…
Browse files Browse the repository at this point in the history
…ror when DEBUG=True in the CommonMiddleware

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3109 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
adrianholovaty committed Jun 8, 2006
1 parent e5cd46d commit 3aa6b05
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions django/middleware/common.py
Expand Up @@ -39,6 +39,8 @@ def process_request(self, request):
# 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]:
Expand Down

1 comment on commit 3aa6b05

@graingert
Copy link
Contributor

@graingert graingert commented on 3aa6b05 Jun 28, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't you just do a 307 or 308 redirect?

Please sign in to comment.