To force Django to use a specific language for the current request, activate it
with django.utils.translation.activate.
from django.utils import translation
def my_view(request):
translation.activate("it")
request.LANGUAGE_CODE = "it"
...
This is useful when the language must come from your application logic instead of the browser preferences.
If you need to persist the choice, store the language in the session:
request.session["django_language"] = "it"
Then activate it again in middleware or at the beginning of the view that needs that behavior.