Django modelform字段名可以';在生产中不能本地化

Django modelform字段名可以';在生产中不能本地化,django,localization,django-forms,Django,Localization,Django Forms,我有一个模型: class Server(models.Model): serverId = models.IntegerField(verbose_name=_("serverId")) name = models.CharField(max_length=200, verbose_name=_("server_name")) ip = models.CharField(max_length=200, verbose_name=_("ip")) cpor

我有一个模型:

class Server(models.Model):
     serverId = models.IntegerField(verbose_name=_("serverId"))
     name = models.CharField(max_length=200, verbose_name=_("server_name"))
     ip = models.CharField(max_length=200, verbose_name=_("ip"))
     cport = models.IntegerField(default=5000, verbose_name=_("cport"))
     aport = models.IntegerField(default=1000, verbose_name=_("aport"))
     hport = models.IntegerField(default=2000, verbose_name=_("hport"))
     version = models.CharField(max_length=100, verbose_name=_("version"))
     serverGroup = models.ForeignKey(Group, null=True, blank=True,
             verbose_name=_('server_group'))
     class Meta:
         db_table = u'server'

     def __unicode__(self):
         return self.name
以及模型形式:

class ServerForm(ModelForm):
    class Meta:
        model = Server
从这个应用程序目录中我做了

$ mkdir locale
$ django-admin.py makemessages -l zh_CN
然后我在locale/zh_CN/LC_MESSAGES/django.po中提供了翻译 然后我做到了

$ django-admin.py compilemessages
然后我运行了开发服务器:

$ python manage.py runserver
然后查看firefox中的url和显示的翻译。所以我认为我做得对,我使用nginx+fastcgi在同一台机器上部署了这个项目,整个项目没有任何变化。然后我转到url,然后模型表单在那里显示英语。它没有本地化为中文

我在谷歌上搜索了很多,读了很多docs.djangoproject.com上的文档,但仍然不知道如何解决这个问题。所以我在这里问

我只在我的settings.py中设置LANGUAGE_CODE='zh_CN',并将所有内容保留在deafult上。我的django版本是1.2.4


感谢您的任何评论。

确保您使用的是惰性翻译。您正在导入
ugettext\u lazy
还是
ugettext

from django.utils.translation import ugettext_lazy as _

有关信息,django将第一个参数作为字段的详细名称

因此,您也可以用更短的方式编写模型,如下所示:

version = models.CharField(_("version"), max_length=100)
serverGroup = models.ForeignKey(_('server_group'), Group, null=True, blank=True)

在1.4版上,它只适用于ugettext,而不适用于ugettext_lazy

我使用ugettext…当我切换到ugettext_lazy时,它可以工作,非常感谢。