我正在尝试将django-transmeta集成到ubuntu 10.10上的django安装中(系统上的python-django版本是1.2.3-1ubuntu0.2.10.10.1) 按照项目主页/摘要here中的说明,我最终得到了数据库中正确的新字段,但是当我打开管理界面并尝试添加对象时,翻译的字段“描述”未显示在管理面板中,它仅显示无。 查看源代码并经过一些调试后,将变量传递给模板 值无似乎 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'
这是管理界面中结果的屏幕截图: (对不起,我是新手,因为反垃圾邮件原因无法在问题中发布图片) admin screenshot here
在上面的管理表单中,它应该是:
Description en-us:
Description it:
Description de:
....
您知道问题可能是什么吗?或许这是一个错误?
为了改进我的调试,您能否将我指向django管理视图中正确的位置,其中生成了 field.label_tag ? (我对Django很新)
如果需要一些调试数据,请告诉我,我很乐意提供。
提前致谢
的Fabio
答案 0 :(得分:5)
您的字段上似乎缺少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