Получение значения поля на языке по умолчанию в django-transmeta - PullRequest
2 голосов
/ 28 ноября 2011

Я использую django-transmeta, чтобы помочь с моими многоязычными моделями. Вот пример моей модели:

class Edition(models.Model):

    __metaclass__ = TransMeta

    name = models.CharField(max_length=64)

Может кто-нибудь сказать мне, как я могу получить значение поля name на языке по умолчанию. Я хотел бы переопределить метод __unicode__ модели, чтобы я мог отображать осмысленный заголовок. В настоящее время оно отображается как Edition Object и не очень полезно.

Спасибо.


Редактировать: мне удалось сделать это так, но это зависит от того факта, что код языка жестко закодирован.

class Edition(models.Model):

    __metaclass__ = TransMeta

    name = models.CharField(max_length=64)

def __unicode__(self):

    return self.name_en

Ответы [ 2 ]

2 голосов
/ 04 декабря 2011

Привет, я разработчик django-transmeta.Для каждого интернационализированного поля у вас есть свойство с именем поля original.

edition = Edition.objects.all()[0]
print edition.name
print edition.name_en
print edition.name == edition.name_en

Если это не работает, вы должны проверить LANGUAGE_CODE и TRANSMETA_DEFAULT_LANGUAGE (это необязательно) в ваших настройках

1 голос
/ 05 февраля 2014

ModelTranslation использует то же соглашение (_en, _fr, ...), но использует его прозрачно в зависимости от текущего языка запросов.

https://github.com/deschler/django-modeltranslation

Кроме того, оно все еще в настоящее времяактивный.

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