#32005: Allow disabling of auto-404-redirection in LocaleMiddleware
-------------------------------------+-------------------------------------
Reporter: Alex Vandiver | Owner: nobody
Type: New feature | Status: closed
Component: | Version: 3.1
Internationalization |
Severity: Normal | Resolution: wontfix
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Old description:
> This is related to the last two comments on #17734. Specifically, if an
> application decides to return an explicit 404, there is no way to prevent
> the LocaleMiddleware from overriding this and trying the language
> redirect.
>
> In those comments, it was about catch-all URL patterns. I'm running into
> something related, but slightly different -- we
> [https://github.com/zulip/zulip/blob/master/zerver/middleware.py#L434
> serve 404's for the `/` endpoint if the subdomain isn't valid], which the
> LocaleMiddleware unhelpfully redirects to (e.g.) `/en/` which isn't any
> less of a 404.
>
> Would folks be amenable to a patch which disabled the auto-404-redirect
> functionality in the middleware with a flag of some sort?
New description:
This is related to the last two comments on #17734. Specifically, if an
application decides to return an explicit 404, there is no way to prevent
the LocaleMiddleware from overriding this and trying the language
redirect.
In those comments, it was about catch-all URL patterns. I'm running into
something related, but slightly different -- we
[https://github.com/zulip/zulip/blob/536bd3188e9428993fd712ed2f0df7c160b6ad60/zerver/middleware.py#L453
serve 404's for the `/` endpoint if the subdomain isn't valid], which the
LocaleMiddleware unhelpfully redirects to (e.g.) `/en/` which isn't any
less of a 404.
Would folks be amenable to a patch which disabled the auto-404-redirect
functionality in the middleware with a flag of some sort?
--
Comment (by Alex Vandiver):
Fair enough. The only slight ugliness with subclassing is that one needs
to repeat
[https://github.com/django/django/blob/master/django/middleware/locale.py#L58-L60
the logic that adds `Content-Language` and `Vary` headers] -- skipping all
of the `process_response` on 404s wouldn't produce the right headers.
Which actually means a
[https://github.com/zulip/zulip/blob/536bd3188e9428993fd712ed2f0df7c160b6ad60/zerver/middleware.py#L378-L385
reasonable amount of code duplication].
--
Ticket URL: <https://code.djangoproject.com/ticket/32005#comment:5>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/064.2d65cade9a025f259013eecaed816d29%40djangoproject.com.