Fixed #8376 -- Use request.path and request.path_info at the right moments when

serving data in the flatpage middleware. Patch from jcassee.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8457 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2008-08-21 01:40:22 +00:00
parent 1e1f7c58bc
commit d05d724165
2 changed files with 2 additions and 2 deletions

View File

@ -7,7 +7,7 @@ class FlatpageFallbackMiddleware(object):
if response.status_code != 404: if response.status_code != 404:
return response # No need to check for a flatpage for non-404 responses. return response # No need to check for a flatpage for non-404 responses.
try: try:
return flatpage(request, request.path) return flatpage(request, request.path_info)
# Return the original response if any errors happened. Because this # Return the original response if any errors happened. Because this
# is a middleware, we can't assume the errors will be caught elsewhere. # is a middleware, we can't assume the errors will be caught elsewhere.
except Http404: except Http404:

View File

@ -20,7 +20,7 @@ def flatpage(request, url):
`flatpages.flatpages` object `flatpages.flatpages` object
""" """
if not url.endswith('/') and settings.APPEND_SLASH: if not url.endswith('/') and settings.APPEND_SLASH:
return HttpResponseRedirect(url + "/") return HttpResponseRedirect("%s/" % request.path)
if not url.startswith('/'): if not url.startswith('/'):
url = "/" + url url = "/" + url
f = get_object_or_404(FlatPage, url__exact=url, sites__id__exact=settings.SITE_ID) f = get_object_or_404(FlatPage, url__exact=url, sites__id__exact=settings.SITE_ID)