問題タブ [inline-formset]
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 - django インライン フォームセット間の検証
この質問が以前に尋ねられたことがないことに驚いています (または、少なくとも私はそれを見つけていません)。2 つのインライン フォームセットを持つ ModelAdmin があり、それらの間で相互検証を行いたいと考えています。
質問は簡単ですが、答えはそうではないかもしれません。両方のフォームセット間で相互検証を行うにはどうすればよいですか? ありがとう!
django - 詳細ページの ManyToMany 関係のフォーム
次の(簡略化された)モデルがあります。
ロットに関連するアイデアを含む、ロットに関するすべての情報を一覧表示するロット詳細ページを表示したいと考えています。これは簡単です。
ただし、さらに、ユーザーがこのページからそのロットの新しいアイデアを追加できるようにしたい. 送信後、ユーザーは新しいアイデアがリストに追加されたロット詳細ページに戻る必要があります。
新しいアイデアのインライン フォームセットを試してみましたが、既存のアイデアのドロップダウンとして表示されるだけで、新しいアイデアを作成することはできません。さらに、既に送信されたアイデアを編集/削除するのではなく、ユーザーが新しいアイデアを追加できるようにするだけでよいので、やり過ぎのようです。また、他のロット情報を編集できるようにする必要もありません。関連するアイデアを追加するだけです。
おそらくこれを達成する簡単な方法があることは知っていますが、現時点では少し行き詰まっています。
どんな助けでも大歓迎です。
ありがとう!
編集: Django 管理者について言及しているわけではありません。これは、ユーザー向けフォーム用です。
django - 管理インラインで大量の SQL リクエストを生成する Django-MPTT ツリーへの ForeignKey
django-mptt に関連して劇的なパフォーマンスの問題に直面しています。これが私のケースです:
- クイズ教室があります
- Quizz への FK と Category クラスへの FK を持つ Question クラスがあります。
- MPTT ツリーである Category クラスがあります (分類が階層的であるため)
現在、7 つの質問を含む実際のクイズと、質問を QuizzAdmin ビューにインラインとして表示する管理ビューがあり、インラインには [選択] フィールドとしてカテゴリが表示されます。
次に、問題が発生します。
- 質問を prefetch_related としてロードしました(さらに、questions__category をロードしようとしました)。
- それにもかかわらず、デバッグ ツールバーには、テンプレートのレンダリング時に発生する一連の 16 個のクエリが表示されます (template/edit_inline/tabular.html)。私の開発用ラップトップでは、これをすべてロードするのに 1 分かかります (実際のデータを使用したテスト環境では、10 分を意味します!)
これらの 16 のクエリは、以下の一連のクエリです: (pls は、ダミーのカテゴリでテストしていることに注意してください)
と
クエリの数を減らすために何ができるか考えていますか?
よろしくお願いします LA
[編集1]
問題の半分を説明する愚かなことがありました: 私のカテゴリの __unicode__() は、オブジェクトの親の __unicode__() を見ていました (幸い、私のツリーは 2 レベルの深さしかありません)
現在、私の最適な構成では、おそらく Select フィールドの選択肢を構築するために、8 つのエントリに対して "SELECT ... FROM quizz_category" (WHERE 句なし) が 9 回あります。
このクエリをキャッシュして一度だけ実行する方法を知っている人はいますか?
注:現在の最適な構成は、 QuestionInline に .select_related('category') を含めることです
これらのクエリについてデバッグ ツールバーに表示される内容は次のとおりです (すべて同じです)。
SELECT "quizz_category"."id", "quizz_category"."parent_id", "quizz_category"."name", "quizz_category"."name_en", "quizz_category"."name_fr", "quizz_category"."lft"," quizz_category"."rght", "quizz_category"."tree_id", "quizz_category"."level", "quizz_category"."description", "quizz_category"."description_en", "quizz_category"."description_fr" FROM "quizz_category" ORDER BY "quizz_category"."tree_id" ASC, "quizz_category"."lft" ASC 3,68816058264% 1,66 Sel Expl 接続: デフォルト 分離レベル: コミットされた読み取り トランザクション ステータス:トランザクションで /Library/Python/2.7/site-packages/django/contrib/staticfiles/handlers.py呼び出し中(72) return self.application(environ, start_response) /Library/Python/2.7/site-packages/django/contrib/admin/widgets.py in render(263) 出力 = [self.widget.render(name, value, *args, **kwargs)] 49
{{ field.contents|改行br }}
50 {% else %} 51
{{ field.field.errors.as_ul }} 52
{{ field.field }} 53
{% endif %} 54
55
{% endfor %} /Library/Python/2.7/site-packages/ジャンゴ/contrib/admin/templates/admin/edit_inline/tabular.html
django - can_delete=True および can_order=True の Django inline_formset が機能しない
インライン フォームセットとして表されるモデルと外部キー モードを含むフォームがあります。注文したフォームセットを保存するのに大変な時間を費やしています。実際、1つ削除しようとするたびに、倍増します。
forms.py で:
そしてviews.pyで:
私はSOを気に入りましたが、何も見つかりませんでした。誰にも解決策がありますか?
ありがとう!!
django - インデックスをハードコーディングせずにフォームセット内の特定のフォームにアクセスする
インデックスをハードコーディングせずに、テンプレート内のインライン フォームセットから特定のフォームにアクセスする方法はありますか? フォームセットを反復処理する通常の方法は、次のようにすることです。
しかし、テンプレートに関するいくつかの詳細 (複数のフォームセットがあり、別のテーブル内に並べて表示する必要がありますfor
) のため、インデックスで各フォームにアクセスできるとよいでしょう。のようにインデックスをハードコーディングすることでこれを行うことができますが{{ formset.0 }}
、テンプレートで繰り返し処理を行っているため、forloop.counter でフォームを取得して、次のようなことができるようにするのが理想的です。
これを達成する方法はありますか?
python - 非親モデルの inlineformset のモデル フィールドのクエリセットを変更する
インライン フォームセットを使用しており、フォームセットがインスタンス化されるときに、親モデル以外のフォーム フィールドの 1 つのクエリセットを変更する必要があります。
ビュー コードを入力するまで決定されない foo の値に応じて、フォームセット内のすべてのフォームの BarForm の「other_model」フィールドのクエリセットを変更する必要があります。これを行う方法はありますか?
python - djangoはフォームセットの変更されたフィールドを無視します
私は次のモデルを持っています:
ユーザーが動的フォームセットを介して特定のレシピの「UsesIngredient」モデルをいくつでも追加できるビューがあります。グループ属性は、ユーザーから非表示に自動的に入力されます。
問題は、ユーザーがフォームセットに新しいフォームを追加しても、どのフィールドにも入力しない場合、そのフォームを保存したくないということです。ただし、「グループ」属性が「変更」されているため(追加のフォームが作成されたときに自動的に入力されたため)、djangoは引き続きフォームを保存しようとします。
これを回避する方法はありますか?
ありがとう!
python - Django Admin - User Inline でモデルを作成する
こんにちは、ユーザーと OneToOne の関係を持つモデルがいくつかあります。
モデル作成管理ページ内でインライン ユーザー作成を行う方法はありますか?
モデル.py
Admins.py
このように私はこれを持っています:
/admin/organization/employee/ で正しく構成されていない 'UserInline.fk_name' は、モデル 'auth.User' にないフィールド 'user' を参照しています。
インライン モデルは、他のモデルと FK 関係を持つ必要があることを知っています。
User モデルをカスタマイズする必要がありますか? 何か不足していますか、それともこの実装を実行できませんか?
ありがとう!