Уведомления

Группа в Telegram: @pythonsu

#1 Март 19, 2020 02:38:35

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

вопрос по Internationalization and localization Django

в таблице (модели) Application перечисляются на английском задачи.
они выходят в шаблоне через выпадающее меню формы
Как их интернализировать?
Можно ли вообще автоматизировать перевод значений в таблице или нужно создавать отдельное поле, каждый раз проверять request.LANGUAGE_CODE и на него переключаться?

другой вопрос как интернализировать в форме метку
label = “Specify application” ?
через подчеркивание не получается







Спаибо

Отредактировано gtlhbkkj (Март 19, 2020 10:18:44)

Офлайн

#2 Март 19, 2020 11:25:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

вопрос по Internationalization and localization Django

gtlhbkkj
Ой-ой, что вы делаете!

 class MyModel(Model):
    pass
  
  
class MyForm(Form):
    field = MyModel.objects...
Так делать нельзя. Во-первых, ваше поле field получит какое-то значение только один раз при импорте класса, и после этого вы можете сколько угодно изменять данные в MyModel, значение field от этого не изменится. Мне кажется, это несколько не то, чего ожидают от данных. Во-вторых, я бы не стал расчитывать на порядок импорта классов. Сейчас класс вашей формы зависит от класса модели, и мы рассчитываем, что весь ОРМ уже находится в работоспособном состоянии на этот момент, что есть коннект к БД, построена иерархия моделей и пр. Я бы не стал на это надеяться, потому что это отличный способ в какой-то момент сломать всю вашу программу и получить какое-то непонятное поведение, если например, обновится версия джанги, или вы запустите проект с DEBUG = False и при этом порядок инициализации фреймворка изменится.

Локализация хранимых данных делается с помощью https://github.com/deschler/django-modeltranslation



Офлайн

#3 Март 19, 2020 13:28:56

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

вопрос по Internationalization and localization Django

FishHook
Ой-ой, что вы делаете!
1. так как вы написали - так правильно для того случая что вы описали? Это для меня на будущее.
 class MyModel(Model):
    pass
  
class MyForm(Form):
    field = MyModel.objects...

2. в моем случае не предполагается изменения данных посетителем. Посетитель вводит какие-то свои параметры и получает свой сгенерированный отчет. В этом случае, думаю, никаких проблем нет с правильностью функционирования. Так?

3. Насчет локализации спасибо. Классный пакет.

Отредактировано gtlhbkkj (Март 19, 2020 13:29:32)

Офлайн

#4 Март 19, 2020 14:40:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

вопрос по Internationalization and localization Django

gtlhbkkj
так как вы написали - так правильно для того случая что вы описали?

https://docs.djangoproject.com/en/3.0/ref/forms/fields/#django.forms.ModelChoiceField



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version