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

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

django - Django inlineformset - カスタム保存方法

これは私のmodels.pyです

再定義された保存関数で計算されたデータを保存する方法がわかりません...最初に保存さInvoiceItemsれるため、これは明らかに機能しません...Invoices

ビュー.py

InvoiceItemsに挿入する必要があるフィールドを反復処理して計算するにはどうすればよいですかInvoices。私はジャンゴが初めてです...

ありがとうございました!

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

django - Django - インラインフォームと外部キー

ユーザーがプロジェクトの見積もりを作成できるアプリがあります。見積もりには、クライアントの基本情報 (名前、住所、電話番号など) と、私が生成したカスタムの主キー値が含まれています。現在、見積もられた製品と仕事に必要な労力をリストするためのモデルが他に 2 つあります。これら 2 つのモデルは、外部キーを使用して「メイン」推定モデルにリンクされています。これら 2 つのモデルでは、デフォルトで外部キーを介して別のレコードにリンクするため、インライン フォームセットを使用するつもりでした。

2つのインラインフォームと同時に主見積書(基本データ)の記録を作成することは可能でしょうか?2つのインラインフォームセットがリンクされている外部キーも作成されているため、まだ存在しないため、機能しないようです(まあ、機能させるのに問題があります

これを 2 ステップのプロセスにしたほうがよいでしょうか: ステップ 1) 基本データを作成して保存します (それにより、リンクできる主キーを作成します) ステップ 2) 主レコードの外部キーによってそれらをリンクする製品レコードと労働レコードを追加します. これはUIデザインが貧弱であるように思われます(2つのステップがあります)。

考え?

ありがとう!

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

django - Django のインラインフォーム

インライン formSet を使用してレコードを作成しようとしていますが、同時に、主キーインライン formSet の外部キーである通常のフォームでレコードを同じ HTML ページ上に作成しようとしています。

わかる?これが私が言いたいことです: 次の 2 つのモデルがあるとします (明らかに実際のコードではありませんが、アイデアはわかります)。

mainModelここで、ユーザーが多数のインスタンスを作成すると同時にインスタンスを作成できるように、ユーザー用の単一の HTML ページを作成したいと考えていinlineFormModelます。が inlineFormsets を使用してmainModelいる間は、通常のフォームになります。inlineFormModel問題は、すべてのフォームを保存すると、参照するモデルがまだ作成されているため、インラインの formSet レコードにリンクするforeignKeyがないことです(すべてが同じビューに保存されます)。それは理にかなっていますか?

mainModel複数のsecondModelインスタンスを持つ新しいインスタンスを作成し、バッチ全体をすべて同じビュー関数で保存するにはどうすればよいですか?

ありがとう!

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

django - django:フォームウィザード内でインラインフォームセットを使用するには?

2 つの個別のサンプル プロジェクトを表示しています。1 つ目は連絡先関連で、フォーム ウィザードを使用する原則を示しています。2 つ目は、フォーム内でインラインを使用する方法を示すレシピ関連プロジェクトの材料です。通常のフォームで機能するのと同じように、インラインをフォームウィザードに入れたいです。

formwizard マルチステップフォームが機能しています。これは、こちらの例に基づいています。モデルフォームを使用するように少し変更しました。

models.py

フォーム.py

urls.py


これとは別に、インラインを別のフォームに生成しています。私は自分のビューでinlineformset_factoryを介してこれを行っています。これは、上記のフォームウィザードの例とは関係ありません。具材のレシピ例です。私はこれを次のようにやっています:

ビュー.py

レシピ_add.html


formwizard マルチステップ フォーム内でインラインを機能させるにはどうすればよいですか? ブックをインラインで連絡先にしたいので 、models.pyは次のようになります。フォームウィザードの最初のステップにインラインを配置したい。その後、ステップ 2 に進み、終了します。

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

django - インライン フォームセットを使用した Django フォームの検証

顧客向けの見積もりを作成する目的で、メイン フォームと 3 つのインライン forsets をすべて 1 つの HTML ページに配置しています。「メイン」フォームの主キーは、3 つのインライン フォームセットすべての外部キーとして使用されます。新しい見積もりの​​作成、保存、データの変更などを行うことができます。問題ありません。ただし、必要なデータがすべて存在し、「有効」である場合にのみ機能します。

すべてのデータが入力された状態で HTML ページを再表示し、適切な場所にエラーが表示されるようにするにはどうすればよいですか?

私の状況をさらに説明するために、単一の単純なフォームの通常の方法は次のようなものです (これは私の頭の中から外れているので、コード エラーがないことを願っています)。

上記で、検証エラーがある場合、適切なフィールドの横にいくつかのエラーがあり、ユーザーが既に送信したデータでフォームが再表示されます。

インライン フォームセットでは、次のようなことを行います ( myFormPK がありmyInline、外部キーを介してその PK を使用すると仮定します)。

したがって、上記のコードでは、 内myFormで検証エラーが発生した場合、ステートメントをドロップアウトしif、フォームを再表示してエラーを表示します。ただし、インライン フォーム (行) はまだ作成されていません。これは、有効性を確認した後にmyInline = inlineFormset(request.POST, instance=tmp)そのステップが発生し、エラーなどが発生するためです。myFormmyInline Referenced before assignment

これに対抗するために、行を移動してみました:

が有効かどうかを確認する前にmyForm、インライン フォームの POST データをキャプチャできるようにします。myFormしかし、有効かどうかを確認していないため、それはできません。

ニワトリと卵。うーん!

では、ユーザーが入力したインライン フォームセットのコンテンツを再表示しながら、フォームの入力エラーを検証して表示するにはどうすればよいでしょうか。

長い投稿で申し訳ありませんが、質問を短くする方法がわかりません。


編集:

myFormメインフォームの検証エラーを表示し、すべてのmyFormフィールドとフォームセットフィールドを再表示する方法を見つけましたmyInline。こんなふうになります:

メインステートメントmyInlineから出る前に、新しい割り当てに忍び込むだけです。if

うまくいけば、これは同じ問題を抱えている他の人に役立ちます。

乾杯!

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

django - django 管理者の OneToOneField オプション フォームを模倣する方法

モデルに別のモデルへの OneToOneField があり、OneToOne モデルのフォームへの入力がオプションである場合に、Django Admin サイトが提供する機能を模倣したいと思います。そのフィールドのフォームは常に表示されますが、空の場合、OneToOneField のオブジェクトは作成されず、メイン オブジェクトのみが作成または変更されます。また、OneToOneField オブジェクトが作成されたときにのみ有効になる削除チェックボックスもあります。チェックして保存すると、OneToOne オブジェクトは削除されますが、メイン オブジェクトは保持されます。

関連するモデル: 1 つは製品で、もう 1 つは製品がビールの場合の追加情報です。

これは私がビューでやろうとしたことです:

これらは私の関与するフォームです:

そして、これは私がテンプレートに両方のフォームを表示する方法です:

それでも問題は、OneToOne フォーム (Cerveza) に記入しないと製品を追加できないことです。したがって、空にすることはできません。また、OneToOne フォームを削除しようとすると、次のメッセージが表示されます。

残念ながら、オプションの OneToOneField のフォームを作成し、それをカスタム テンプレートで使用する方法の良い例を見つけることができませんでした。

django admin での動作例を 2 つ紹介します。

オプションの onetoone オブジェクトを追加する前: http://i.imgur.com/p3P6s.png

オプションの onetoone オブジェクトを作成した後: http://i.imgur.com/UEcm8.png

どんな助けでも本当に感謝します。前もって感謝します。

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

jquery - フォームセットに新しいインラインを追加すると、日付ピッカーが機能しなくなります

今日はちょっと変わったもの。

私は非常に基本的なプロジェクトを持っています。フォームに追加すると、インラインフォームがあります。それは著者への本です。

フォームが読み込まれると(/ authors / create /)、著者名が表示され、その下にその著者に本を追加できるフォームが表示されます。

動的なインライン(フォームで追加または削除できる)を使用できるようにするために、私はhttp://code.google.com/p/django-dynamic-formset/を使用しています。

私の問題は、新しいインラインを追加すると、インラインフォームのすべての日付ピッカー(公開日フィールド用)が機能しなくなることです。

何が悪いのかを正確に示すサンプルプロジェクトを添付しました。ここからダウンロードして実行できます。

なぜ、どうすればこれを修正できますか?

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

django - Django管理者インラインで使用されるform_class内の外部キーインスタンスを取得する

カスタムフォームクラスを使用するインラインの管理者がいます。そのフォームクラスの関数内から親インスタンス(外部キー)にアクセスするにはどうすればよいですか?

以下の関連コード:

models.py:

admin.py:

forms.py:

実際のインスタンスができたら、を使用してアクセスできることを知っていますinstance.bar。しかし、それは実際に記録がある場合にのみ機能しますよね?したがって、このフォームを使用してレコードを作成する場合、インスタンスはNoneになります。

0 投票する
2 に答える
1470 参照

django - Djangoインラインフォームセット-保存されたオブジェクトを取得します

こんにちは、どうすればインラインフォームセットオブジェクトを保存できますか?実際、私のフォームセットには一意のフィールドがありません。

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

python - Djangoインラインフォームセットと一般的な初心者

似たようなトピックについて 1 日で 2 つの質問をして申し訳ありませんが、私の django に対する知識が完全になくなりました。基本的に私は2つのモデルを持っています:

あなたができるように、誰かが物語を提出し、その名前が著者のテーブルに入るという考えがあります。かなり単純なもの。私の問題は、ユーザーがストーリーと名前を送信できるフォームを作成することです。私は inlineformset を試しましたが、うまくいきませんでした。私が知っていることを実行する方法を見つけることができません。これは、単純な AND sql ステートメントの背後にあります。

ここに私のフォームモデルがあります: StoryAuthorFormSet = inlineformset_factory(Author, Story)

これが私の見解です

私はそれらがおそらく私が見逃した単純な解決策であることを理解しています...しかし、どんなアイデアでも大歓迎です...とても困惑しているので、必要な人のために無料のClojureとErlangプログラミングを行います.それ!