Mam scenariusz, w którym muszę określićjęzyk w zapytaniu za każdym razem, gdy uruchamiam objects.filter z modelu. Do celów tłumaczenia muszę wysłać żądanie.LANGUAGE_CODE jako pole obowiązkowe.
W moim modelu.py
class ModelA(models.Model):
field_a = models.CharField(max_length=1, choices=_statuses, default=_default_status)
field_b = models.ForeignKey(ModelLookup, )
language = None
def i18n(self):
return self.model.modellookupi18n_set.values_list("make_display", "model_display", "trim_display").get(language=self.language)
Czy istnieje sposób na określenie wartości języka podczas uruchamiania na przykład ModelA.objects.filter (), jeśli to możliwe, że mogę przekazać ją jako parametr łańcuchowy, w przeciwnym razie klasa nie uruchomi się.
Odpowiedzi:
2 dla odpowiedzi № 1Możesz uzyskać aktywny język z django.utils.translations przez metoda get_language ():
from django.utils.translations import get_language
currentLanguage = get_language()
To jest właściwy sposób pracy z językami.