переопределить __str__ метод, позволяющий отображать условную строку на основе языка браузера

#python #django

#python #django

Вопрос:

У меня есть проект Django, который интернационализирован

У меня есть модельные платы, которые содержат 2 поля (французское и английское) для управления переводом

В моей форме у меня есть поле ModelChoice, в котором отображается список стран на французском языке

Как я могу управлять языком в методе платной модели str?

 def __str__(self):
    return f"{self.pay_nom_eng}"
  
 ...
self.language = request.session.get('language')    
PAYS = Pays.objects.filter(pay_ran = 1).order_by('pay_ide')
...

self.fields["pay_ide"] = forms.ModelChoiceField(queryset = PAYS, label = _("Country"), widget = forms.Select)
  

Ответ №1:

во-первых, я думаю, вам стоит взглянуть на библиотеку django-translations, которая может отлично поработать за вас и сэкономить много времени.

в любом случае, чтобы ответить на ваш вопрос, вы можете обратиться к документу, я думаю, что это довольно ясно об этом:https://docs.djangoproject.com/en/3.1/ref/forms/fields/#django.forms .ModelChoiceField.итератор