問題タブ [django-modeltranslation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - django-modeltranslation で翻訳した元のフィールドをどうするのですか?
モデルのフィールドが使用できる言語を settings.py で指定します。
しかし、移行を適用すると、元のフィールドとは別に、これらの追加の 3 つのフィールドが作成されることになります。元のフィールドが「name」だった場合、「name」、「name_en」、「name_zh_cn」、および「name_zh_tw」になります。
元のフィールドで何をすることになっていますか?それを無視します?消して?LANGUAGES に英語を入れずに、オリジナルを英語の翻訳として扱うべきですか?
Github ページで解決策を探したところ、デフォルトを希望の言語に設定して、TRANSLATIONMODEL_LANGUAGES に含めなくてもよいと誰かが言っていました。 #issuecomment-457427502しかし、これは正しくありません (少なくとも最新の translationmodel リリースでは) django.core.exceptions.ImproperlyConfigured: MODELTRANSLATION_DEFAULT_LANGUAGE not in LANGUAGES setting.
。
python - django-modeltranslation - Django モデルの get() SQL SELECT が翻訳されたフィールドをフェッチしない
django-modeltranslation を使用して、一部のモデル フィールドをオランダ語 (nl) とフランス語 (fr) に翻訳します。
現在、1 つのモデルを除いてすべて正常に動作しています。
データベースでは、3 つのフィールドとそれに対応する翻訳済みのフィールドが表示されます: title、title_nl、title_fr、name、name_nl、name_fr、description、description_nl、description_fr。これらの翻訳されたフィールドを django admin またはシェルで更新すると、それらは正しく保存されます。データベースからこのデータをフェッチすると、問題が発生します。したがってAssociation.objects.all()
、 、Association.objects.get(id=1)
、または django admin の詳細ビューでこのデータを取得すると、翻訳されたフィールドごとにデフォルトのデータが表示されます。Django が実行した SQL クエリを調べると、次の奇妙なクエリが表示されます。
ご覧のとおり、titleが 3 回、nameが 3 回、descriptionが 3 回あり、 language suffix はありません。
したがって、このモデルを更新する場合、django-modeltranslation はうまく機能しますが、データベースから翻訳されたデータをフェッチする場合、作成したモデルの 1 つだけでは機能しません。
誰かがこのエラーで私を助けてくれますか? 私はすでに何日もこれを見ています。どこかでタイプミスをしたのではないかと思いましたが、タイプミスは見つかりませんでした。./manage.py makemigrations
また、これらのフィールドを削除して再度追加し、 、./manage.py migrate
、./manage.py update_translation_fields
とデータベースを再度同期しようとしまし./manage.py sync_translation_fields
たが、それでも成功しませんでした。
私はpythonバージョン3.5.2、Djangoバージョン2.1.7、およびdjango-modeltranslationバージョン0.14.4を使用しています
django - 翻訳を含む django レスト フレームワーク モデル用のカスタム シリアライザーを作成する方法
私はdjango-rest-frameworkを使用しており、django-modeltranslationを使用して翻訳された属性「テキスト」を持つモデル「TextElement」を持っています。翻訳されたフィールドを受け取り、言語をキーとして、翻訳された属性を値として持つディクショナリをデータとして返す汎用シリアライザーを作成する必要があります。例:
次のシリアライザーを使用して実行できます。
しかし、「フィールド」内のすべての翻訳された属性を自動的にチェックし、settings.LANGUAGES で利用可能な言語を使用して同じデータ構造を返す汎用シリアライザーを作成できるかどうかを知りたいです。
前もって感謝します!