forked from wagtail/guide
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmiddleware.py
More file actions
27 lines (22 loc) · 924 Bytes
/
Copy pathmiddleware.py
File metadata and controls
27 lines (22 loc) · 924 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from django.http import Http404
from django.urls import LocalePrefixPattern
from django.utils.translation import activate, get_language
from apps.core.models import HomePage
pattern = LocalePrefixPattern()
class ValidateLocaleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
if request.resolver_match:
# Check if the path is in the i18n_patterns
if pattern.match(request.resolver_match.route):
try:
HomePage.objects.get(
locale__language_code=get_language(), live=True
)
except HomePage.DoesNotExist:
# Activate English so that we have a site menu
activate("en-latest")
raise Http404()
return response