Python 不使用中间件本地化Django应用程序

Python 不使用中间件本地化Django应用程序,python,django,localization,django-middleware,Python,Django,Localization,Django Middleware,我需要本地化一个django项目,但是只保留一个应用程序(博客)的英语版本 我编写这个中间件就是为了实现这一点: from django.conf import settings from django.core.urlresolvers import resolve class DelocalizeMiddleware: def process_request(self, request): current_app_name = __name__.split('.')

我需要本地化一个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中包含中间件,或者其他一些东西


检索当前正在运行的应用程序名称的最佳方法是什么?

您可以使用Django的
resolve
功能获取当前应用程序名称