/ / django programowo dołącza zmienną do modelu - django, django-models

django dołączanie zmiennej do modelu programowo - django, django-models

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 № 1

Moż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.