0

モデルから objects.filter を実行するたびに、クエリで言語を指定する必要があるシナリオがあります。翻訳の目的で、request.LANGUAGE_CODE を必須フィールドとして送信する必要があります。

私のmodel.pyで

class ModelA(models.Model):
  field_a   = models.CharField(max_length=1, choices=_statuses, default=_default_status)
  field_b   = models.ForeignKey(ModelLookup, )
  language  = None

  def i18n(self):
        return self.model.modellookupi18n_set.values_list('make_display', 'model_display', 'trim_display').get(language=self.language)

たとえば、 ModelA.objects.filter() を実行するときに言語値を指定する方法はありますか?可能であれば、それを連鎖パラメーターとして渡すことができます。そうしないと、クラスの実行に失敗します。

4

1 に答える 1

2

get_language() メソッドを使用して、 django.utils.translationsからアクティブな言語を取得できます。

from django.utils.translations import get_language
currentLanguage = get_language()

これは、言語を扱う正しい方法です。

于 2012-11-04T17:35:06.647 に答える