問題タブ [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.

0 投票する
1 に答える
129 参照

django - Mezzanine 4.2.2 / 4.2.3: USE_MODELTRANSLATION = True の場合、検索が中断する

django-modeltranslation を使用して、メザニン プロジェクトで検索機能を正しく動作させるためにかなりの時間を費やしてきました。私は Django、Mezzanine、および Python にかなり慣れていないので、この問題を理解するのが難しい理由について驚くことはありません。

私の翻訳はうまくいきます。そこに問題はありません。ただし、USE_MODELTRANSLATION = Truesettings.py に設定して検索クエリを実行するたびに、予想される検索結果ページではなく、毎回ホームページにリダイレクトされ、コンソール出力に が表示されます"POST /i18n/ HTTP/1.1" 302 0

後者の場合USE_MODELTRANSLATION = False、検索クエリを設定して実行すると、期待される検索結果が出力されます"GET /search/?q=test HTTP/1.1" 200 12972

また、各 POST がヘッダーにパラメーターを渡していることにも気付きlanguageましたが、これが問題の一部であると思われます。また、urls.py に問題があるのではないかと疑い、検索 URL に固有の多くの組み合わせを試みましたが、それもうまくいきませんでした。問題が modeltranslation にある可能性はほぼ確実ですset_language

これまでのところ、次の組み合わせでシナリオをテストしましたが、解決できませんでした:

  1. メザニン 4.2.3 | ダンゴ 1.11 | django-modeltranslation 0.12
  2. メザニン 4.2.0 | ダンゴ 1.10 | django-modeltranslation 0.12
  3. メザニン 4.1.0 | ダンゴ 1.10 | django-modeltranslation 0.11
  4. メザニン 4.0.1 | ダンゴ 1.9.12 | django-modeltranslation 0.11
  5. メザニン 4.2.2 | ダンゴ 1.10.8 | django-modeltranslation 0.12 (現在はこちら)

翻訳フィールドの同期と実行中に問題が発生したため、現在のセットアップに次のパッチも含めましたpython manage.py createdb

https://github.com/stephenmcd/mezzanine/commit/c244b603a6efab5062dcf97b1e12227e61ba4fb8 https://github.com/stephenmcd/mezzanine/pull/1764/files

Mezzanine と django-modeltranslation を使用して検索機能を解決するために誰かが私を正しい方向に向けることができれば、それは非常に高く評価されます!


現時点では、この問題を理解しようとしているだけなので、models.py と views.py はむき出しです。とにかく派手なことはしていません。

translation.py を使用して、古いインポートをクリーンアップする必要がありますが、現在、pinax の証言のフィールドを翻訳するために必要なものしかありません。

私のセットアップには以下が含まれます:

  • メザニン 4.2.2
  • ジャンゴ 1.10.8
  • パイソン 2.7.12
  • PostgreSQL 9.5.8
  • Linux 4.10.0-33 ジェネリック

関連する settings.py:

urls.py:

環境:

追加情報が必要な場合はお知らせください。