問題タブ [django-hvad]
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.
django - 1 つのフォームセットで django-hvad を使用して複数の言語を管理する
django-hvad を使用して、さまざまな言語でオブジェクトを編集しています。ドキュメントで説明されているように、フォーム (オブジェクト用) とフォームセット (さまざまな言語のオブジェクト属性用) を取得しました。フォームセットは、django-crispy-forms でビルドされた言語ごとのタブに表示されます。
イニシャルを使用しない限り、すべて正常に機能します。私の目標は、言語を事前に選択し、language_code-field を非表示にして、複数の言語を入力できるようにすることですが、その必要はありません。
フォーム.py:
django-hvad のどこかでイニシャルが再度設定されるかオーバーライドされるため、フォームはバインドされます。これは、言語ごとのコンテンツ フィールドが入力されていないため、無効なデータにつながります。settings.LANGUAGES で定義されているのと同じ順序でイニシャルを設定している限り機能しますが、2 番目のタブ/言語のみを入力すると、重複する言語が生成される可能性があります。ビューをリロードすると、両方の最初のタブが 2 番目の言語で埋められます。 . 最初のものはフォームセットに事前入力されたフォームのため、2 つ目はイニシャルのためです。
ビュー.py:
Category-model と Category フォームはほぼ標準なので、添付しません。誰かが同様の問題に遭遇したり、1つの重要な質問の解決策を提供したりする可能性があるかどうか、私は本当に興味があります: どうすればフォームセットでイニシャルを動的に設定できますか?
乾杯、マリウス
django - PageField() を翻訳済みモデルに追加する際の JS エラー (django-hvad)
django-hvad で django-cms を使用すると、問題が発生します。
2 つの TranslatableModel が定義されています。
NewsEntryLink
への ForeignKey がありNewsEntry
ます。これらのモデルの管理者に、次のクラスを (インラインで) 追加しました。
admin.site.register(NewsEntry, NewsEntryAdmin)
その管理ページにアクセスすると、次の JS エラーが表示されます: Uncaught TypeError: undefined is not a function (index):743
また、新しいインライン モデルを追加することはできず (リンクはありません)、選択肢 (ページ) は利用できません。
皆さん、何か考えはありますか?
python - Django REST Framework は翻訳可能なフィールドを表示できません
Django REST フレームワークとDjango-hvadアプリを使用して、Django ベースの Web サイト用の REST API を実装しています。
問題: REST ビューセットの翻訳されたフィールドによってエラーが発生します。
注: 別の質問で同様の問題に対処して解決しましたが、インストールしたアプリのバージョンには適用されません。
- ジャンゴ1.8
- ここで説明されているように、RESTフレームワークの組み込みサポートを 持っている、または持っていると主張するhvad 1.2.0
- ジャンゴ レスト フレームワーク3.1.1
これが私のモデルです:
そして、私のurls.py
見た目は次のようになります(簡潔にするためにインポートを取り出しました):
これらを使用すると、URL/it/api/v1/websites/
で厄介なエラーが発生します。
/it/api/v1/websites/ の WrongManager 未翻訳モデルから「url」などの翻訳済みフィールドにアクセスするには、翻訳対応マネージャーを使用する必要があります。翻訳不可能なモデルの場合は、hvad.utils.get_translation_aware_manager を使用して取得できます。翻訳可能なモデルの場合、language() メソッドを使用します。
注: プレフィックスを他の言語コードに置き換えて/it
も、何の役にも立ちません。
私がこれまでに試したこと:
- クラスで
WebsiteViewSet
、関数に固定引数を指定しlanguage()
ます。 - こちらの手順に従って、TranslationMixin (すべての翻訳を公開する言語に依存しないシリアライザー) を使用します。クエリセット行を次のように変更しました。
queryset = Website.objects.untranslated().prefetch_related('translations').all()
- API URL 定義を i18n パターンの外に移動する
しかし、すべての場合において、常にまったく同じエラーが発生します。
私は何が欠けていますか?
python - admin の django-hvad ForeignKey は、フィールド変換の代わりに常にオブジェクト ID を表示しています
私は、django-hvad を使用して Django で多言語アプリケーションに取り組んでいます。
ブログ アプリのカテゴリと投稿の 2 つのモデルがあります。
私のadmin.pyでは、この方法でモデルを登録しています:
管理画面で新しい投稿を作成すると、カテゴリ ドロップダウンに名前ではなくカテゴリ ID が表示されます。
ID の代わりに翻訳された名前を取得するにはどうすればよいですか?
django - prefetch_related() が AttributeError を発生させるのはなぜですか?
2 番目のモデルと多対多の関係を持つモデルがあります。prefetch_related を使用しようとすると、AttributeError が発生します。モデルは次のように要約できます。
(各種詳細は割愛)。TranslatableModel
とTranslatedFields
はdjango-hvadからのもので、この場合重要であるとは思いませんが、100% 確信があるわけではないので、それを含めようと思いました。
私が反復しようとしているクエリセットは次のとおりです。
私が得るスタックトレースは次のとおりです。
私はDjango 1.7を使用しています
セットアップ方法に間違っているように見えるものはありますか?