djangoプロジェクトをローカライズする必要がありますが、アプリケーションの1つ(ブログ)は英語のみにしてください。
これを実現するために、このミドルウェアを作成しました。
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または他の何かにミドルウェアが含まれている可能性があります。
現在実行中のアプリの名前を取得するための最良の方法は何ですか?