1

翻訳済みフィールドに使用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 を使用できるオプションはありますか?

ありがとう!

4

1 に答える 1