django-transmeta в admin, отображающий "None" в поле .label_tag - PullRequest
4 голосов
/ 04 апреля 2011

Я пытаюсь интегрировать django-transmeta в мою установку django на ubuntu 10.10 (версия python-django в системе - 1.2.3-1ubuntu0.2.10.10.1) Следуя инструкциям в проекте home / summary здесь Я получаю правильные новые поля в базе данных, но когда я открываю интерфейс администратора и пытаюсь добавить объект, переведенное поданное "описание" не отображается в административной панели и отображается только Нет . Просматривая исходный код и после небольшой отладки, переменная передается в шаблон значение которого Нет представляется field.label_tag

Это класс внутри models.py:

class Place(models.Model):
__metaclass__ = TransMeta
lat = models.FloatField(blank=True, null=True)
lon = models.FloatField(blank=True, null=True)
alt = models.FloatField(blank=True, null=True)
description = models.CharField(max_length=100)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
attributes = models.ManyToManyField(Attribute, through='PlaceAttribute')
is_online = models.BooleanField(default=False)
class Meta:
    translate = ('description', )
def __unicode__(self):
    return self.description

В settings.py я добавил это:

LANGUAGE_CODE = 'en-us'

ugettext = lambda s: s # dummy ugettext function, as django's docs say

LANGUAGES = (
    ('en-us', ugettext('English')),
    ('it', ugettext('Italian')),
    ('de', ugettext('Deutsch')),
    ('fr', ugettext('French')),
    ('ru', ugettext('Russian')),
    ('cn', ugettext('Chinese')),
    ('th', ugettext('Thai')),
)

TRANSMETA_DEFAULT_LANGUAGE = 'en-us'

и это скриншот результата в интерфейсе администратора: (извините, я новичок здесь и пока не могу публиковать изображения в вопросах по причинам антиспама) скриншот администратора здесь

В приведенной выше форме администратора это должно быть что-то вроде:

Description en-us:
Description it:
Description de: 
....

Вы представляете себе, в чем может быть проблема? Или, может быть, это ошибка?

Чтобы улучшить мою отладку, не могли бы вы указать мне правильное место в представлении администратора django, где генерируется field.label_tag ? (Я совсем новичок в Джанго)

Если вам нужны отладочные данные, пожалуйста, сообщите мне, и я с удовольствием предоставлю их.

Заранее спасибо

Fabio

1 Ответ

5 голосов
/ 04 апреля 2011

Похоже, вам не хватает атрибутов verbose_name в ваших полях.

from django.utils.translation import gettext_lazy as _

class Place(models.Model):
    __metaclass__ = TransMeta
    # ...
    description = models.CharField(max_length=100, verbose_name=_("Description"))
    # ...

    class Meta:
        translate = ('description', )

    def __unicode__(self):
        return self.description
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...