4

モデルのhelp_textでpgettext_lazyを使用すると、テンプレートが失敗します。ugettext_lazyで正常に動作します。

エラー

Caught TypeError while rendering: Lazy object returned unexpected type.

モデル

class BalanceIncreaseOrder(models.Model):
    amount = models.FloatField(help_text=pgettext_lazy("Translators: please localize this to reflect the correct currency", "Note: amount will be billed in United States dollars (USD)"))

class BalanceIncreaseOrderForm(ModelFormRequired):
    class Meta:
        model = BalanceIncreaseOrder
        fields = ("amount",)

レンプレート

{% for field in form %}
    {{ field }}
{% endfor %}

ヘルプテキストをそれぞれ設定した直後にモデルをデバッグしました。どちらの場合も印刷されます

<django.utils.functional.__proxy__ object at 0x10fcb3a50>

pgettext_lazyにバグはありますか?何か案は?

4

1 に答える 1

5

私も同じ問題を抱えていました。使用しました

unicode(pgettext_lazy('context', 'string'))

これによりエラーはmanage.py makemessages解消されますが、翻訳された行は検出されなくなります。

多分これはあなたを助けるでしょう..

編集:

ああ、私は解決策を見つけました:

pgettext_lazy(u'context', u'string')

これでうまくいきます。

于 2012-04-19T09:50:44.220 に答える