Выполните перевод (интернационализацию), используя ugettext_lazy в models.py для динамической переменной - PullRequest
0 голосов
/ 29 октября 2019

У меня есть проект django, в котором определены несколько моделей, и у каждой модели есть некоторый набор полей с полями выбора. Эти значения отображаются в шаблоне с помощью цикла. У меня определено несколько языков, и с помощью ugettext_lazy я могу показать переведенное значение в соответствии с языком, выбранным пользователем.

Теперь я пытаюсь переместить эти значения в базу данных, получить их и использовать в ugettext_lazy дляперевод. например, _ (value_from_db)

Проблема в том, что при использовании из базы данных значение не переводится, тогда как при использовании его в качестве жесткого кода, например, _ ("translation_val")

models.py

from django.utils.translation import ugettext_lazy as _
from translated_fields import TranslatedField

class ModelClass(models.Model):
      choices_values = (
        (dataframe[(dataframe['name'] == 'State1')]['code'].item(), _("State1")),
        (dataframe[dataframe['name'] == 'State2']['code'].item(), _(dataframe[dataframe['name'] == 'State2']['value'].item())),
        (State3, _("State3"))
        )

В приведенном выше примере перевод работает правильно для State1, State3, но не для State2.

Я ожидаю, что State2 будет переведен в мой шаблон.

PS Все операции перевода были выполнены правильно и работают (если я заменю выборку кадра данных для state2 жестко закодированным значением, это даст правильный перевод, а также кадр данных получит то же значение, что иодин я жестко запрограммировал)

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...