翻訳済みフィールドに使用django-transmeta
していますが、これらの翻訳済みフィールドを使用していくつかの検索を実行する必要があります。
という翻訳可能なフィールドを持つモデルがあるとしtranslated_field
ます。
最初のアプローチでは、いつものように、次のように考えることができます。
Q(translated_field__icontains="some value") # This fails, as `translated_field` field does not exist
2 番目のアプローチは、可能なすべての言語バージョンをハードコーディングすることです。例えば:
Q(translated_field_en__icontains="some value") # English version
Q(translated_field_es__icontains="some value") # Spanish version
# Add as many as available languages
この 2 番目のオプションは本当にハードコードされているようで、次のような3 番目のオプションが考えられるのではないかと思います。
Q(getattr("translated_field") + get_language() + "__icontains"="some value") # pseudocode
またはさらに良い... Q オブジェクトを使用して **kwargs を使用できるオプションはありますか?
ありがとう!