django-transmeta进入管理员,在该领域显示“None”.label_tag

问题描述:

我试图将django-transmeta整合到我在Ubuntu 10.10上的django安装中(系统上的python-django版本是1.2.3-1ubuntu0.2.10。 10.1) 按照项目主页/摘要here中的说明,我最终得到了数据库中的正确新字段,但是当我打开管理界面并尝试添加对象时,翻译后的字段“description”未显示在管理面板和它只显示。 展望源代码和后位调试,变量传递给模板 ,它的值是似乎field.label_tagdjango-transmeta进入管理员,在该领域显示“None”.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' 

,这是结果的广告截图分钟接口: (对不起,我是新来的,并在反垃圾邮件问题的原因不能发表图片,还) admin screenshot here

在上述管理形式,它应该是这样的:

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

有无你对这个问题有什么想法?或者,也许这是一个错误?

为了改善我的调试,你能否指点我在​​django管理员视图中的field.label_tag生成的正确位置? (我对Django相当陌生)

如果需要某些调试数据,请告诉我,我很乐意提供它。

在此先感谢

法比奥

它看起来像你错过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 
+1

感谢Aminho,它是这样的,现在它的工作,竖起大拇指;) 我不能投你的答案,但是,因为我是新来的,但我会尽快来回到这个。 – FabioP 2011-04-04 14:18:20

+0

不用担心投票,不要忘记使用'manage.py makemessages -l '为每种语言生成消息,翻译并编译它们*如果您还想翻译管理界面* – 2011-04-04 15:02:26