Исключение приложения Django из локализации с использованием промежуточного программного обеспечения - PullRequest
2 голосов
/ 08 октября 2010

Мне нужно локализовать проект django, но оставить одно из приложений (блог) только на английском языке.

Я написал это промежуточное ПО для достижения этой цели:

from django.conf import settings
from django.core.urlresolvers import resolve

class DelocalizeMiddleware:
    def process_request(self, request):
        current_app_name = __name__.split('.')[-2]
        match = resolve(request.path)
        if match.app_name == current_app_name:
            request.LANGUAGE_CODE = settings.LANGUAGE_CODE

Проблема в том, что предполагается, что промежуточное программное обеспечение находится непосредственно в модуле приложения (например, blog / middleware.py ) для получения имени приложения. Другие проекты могут иметь промежуточное программное обеспечение в blog / middleware / delocalize.py или что-то совсем другое.

Какой лучший способ получить имя запущенного в данный момент приложения?

1 Ответ

1 голос
/ 17 марта 2012

Вы можете использовать функцию Django resolve для получения текущего имени приложения.

https://docs.djangoproject.com/en/dev/topics/http/urls/#resolve

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...