django -modeltranslation - Django model get () SQL SELECT не выбирает переведенные поля - PullRequest
0 голосов
/ 04 марта 2020

Я использую django -modeltranslation для перевода некоторых полей модели на голландский (nl) и французский (fr).

Теперь все работает нормально, кроме одной модели:

@register(Association)
class AssociationTranslationOptions(TranslationOptions):
    fields = (
        'title',
        'name',
        'description',
    )

В базе данных я вижу три поля с их переведенными эквивалентами: title, title_nl, title_fr, name, name_nl, name_fr, description, description_nl и description_fr. Когда я обновляю эти переведенные поля в django admin или в оболочке, они сохраняются правильно. Проблема возникает , когда я получаю эти данные из базы данных. Поэтому, если я получаю эти данные с помощью Association.objects.all(), Association.objects.get(id=1) или просто смотрю на них в подробном представлении администратора django, я вижу для каждого переведенного поля данные по умолчанию. Когда я проверяю запрос SQL, который Django выполнил, я вижу этот странный запрос:

SELECT "member_association"."id",
       "member_association"."title",
       "member_association"."title",
       "member_association"."title",
       "member_association"."slug",
       "member_association"."name",
       "member_association"."name",
       "member_association"."name",
       "member_association"."description",
       "member_association"."description",
       "member_association"."description",
       "member_association"."mollie_api_key_test",
       "member_association"."mollie_api_key_live",
       "member_association"."mollie_profile_id",
       "member_association"."bank_account_number",
       "member_association"."created",
       "member_association"."last_modified"
  FROM "member_association"
 WHERE "member_association"."id" = '2'

Как видите, трижды title , три раза name и три раза description , без суффикса языка .

Так что для обновления этой модели django -modeltranslation отлично работает, но для извлечения переведенных Данные из базы данных, это не работает только для одной из моих созданных моделей:

# WORKS
Association.objects.update(name_nl='naam', name_fr='nom')

# ALSO WORKS
association_obj.name_nl = 'naam'
association_obj.name_fr = 'nom'
association_obj.save()

# DOES NOT WORK
association_obj = Association.objects.get(id=1)
print(association_obj.name_nl) # prints 'naam' -> correct
print(association_obj.name_fr) # prints 'nom' -> incorrect

Может кто-нибудь, пожалуйста, помогите мне с этой ошибкой. Я уже смотрю на это в течение нескольких дней. Я думал, что я бы где-нибудь сделал опечатку, но опечаток найти не удалось. Я также попытался удалить эти поля, добавить их снова, снова синхронизировать базу данных с ./manage.py makemigrations, ./manage.py migrate, ./manage.py update_translation_fields и ./manage.py sync_translation_fields, но все еще безуспешно.

Я использую python версии 3.5 .2, Django версия 2.1.7 и django -модель перевод версии 0.14.4

...