2

多言語モデルを支援するために django-transmeta を使用しています。これが私のモデルの例です:

class Edition(models.Model):

    __metaclass__ = TransMeta

    name = models.CharField(max_length=64)

nameデフォルト言語でフィールドの値を取得する方法を教えてください。__unicode__意味のあるタイトルを表示できるように、モデルのメソッドをオーバーライドしたいと思います。現在は と表示されてEdition Objectおり、あまり参考になりません。

ありがとう。


編集:私はこのようにすることができましたが、これは言語コードがハードコードされているという事実に依存しています。

class Edition(models.Model):

    __metaclass__ = TransMeta

    name = models.CharField(max_length=64)

def __unicode__(self):

    return self.name_en
4

2 に答える 2

2

こんにちは私はdjango-transmetaの開発者です。国際化されたフィールドごとに、元の名前フィールドを持つプロパティがあります。

edition = Edition.objects.all()[0]
print edition.name
print edition.name_en
print edition.name == edition.name_en

それが機能しない場合は、設定でLANGUAGE_CODEとTRANSMETA_DEFAULT_LANGUAGE(これはオプションです)を確認する必要があります

于 2011-12-04T19:38:01.613 に答える
1

ModelTranslation は同じ規則 (_en、_fr、...) を使用しますが、現在の要求言語に応じて透過的に使用します。

https://github.com/deschler/django-modeltranslation

また、現在も活動を続けています。

于 2014-02-05T04:14:34.817 に答える