問題タブ [django-crispy-forms]

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 に答える
1848 参照

django - クリスピーなフォーム レイアウトを繰り返し構築しますか?

現在、ユーザーが製品を編集できるようにするフォームをレンダリングしようとしていますが、現在、フォームはすべて 1 つの長い列として表示されています。

2 つの列に分割するように要求されましたが、ModelFormを使用して生成されているために問題が発生しています。modelform_factory()

2 つのフォーム オブジェクトごとに新しい div を挿入できるクリスピー レイアウト オブジェクトを生成する方法はありますか?

注: 用紙の長さは事前にわかりません。

コードを表示:

レイアウト オブジェクトの例:

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

django - django クリスピー フォームで言及されていないフィールドを含む div で各フォームをフォームセットにラップします

次のコードを使用して、フォームセット内のフォームのすべてのフォーム フィールドを django クリスピー フォームの div にまとめています。

FormHelper を「self」でインスタンス化すると、すべてのフィールドを指定しなくてもレイアウトが自動生成されます。フィールドが動的に生成されるため、これが必要です。問題は、DELETE フィールドと ORDER フィールドがレイアウトに追加されていないことです。そこで、render_unmodified_fields を True に設定しました。この設定では、これら 2 つのフィールドは少なくともフォームに表示されますが、div の残りのフィールドでラップされません。

フォームセット内のフォームを手動で反復処理して div でラップできることはわかっていますが、これはこれまで行ってきたことですが、これにはフォームセットの非フォーム エラーを手動で処理する必要があり、通常は自動的に行われます。クリスピーで。

編集: 要求に応じてコードを更新しました。このクラス全体は実際には fields_list に値を設定するファクトリ メソッドにラップされているため、特定のフィールドのみを動的に含めることができます。ORDER と DELETE は意図的に省略されています。それらは自動的に検出され(それらを含めるとエラーになります)、フォームに表示されます。単に div にラップされません。

0 投票する
0 に答える
3758 参照

django - Django Crispy Forms ファイル アップロード フィールド

クリスピー フォームを正しく作成したと思っていましたが、カスタム クリスピー フォームではなく、標準の Django フォームとしてレンダリングされています。

フォーム.py:

SmallFileField (ブートストラップに基づく):

form.html

PS。このフォームは、3 ステップのフォーム ウィザードの 1 ステップです。あなたのアイデアに感謝します!

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

django - Django クリスピー フォームが CSS をロードしない

私はこの質問を SO: Django Crispy-forms cannot find CSSで見ました 、受け入れられた回答のすべての提案に従いました。

  • 「crispy-forms」は INSTALLED_APPS の下にリストされています
  • 私は運用サーバーを実行していないため、collectstatic オプションが適用されているかどうかはわかりません (実行しましたが)。

また、ブートストラップ テンプレート パックを使用しようとしているので、CRISPY_TEMPLATE_PACK = 'bootstrap' を settings.py ファイルに追加しました。

https://gist.github.com/maraujop/1838193から例で作成したフォームを読み込むと、ページに CSS がありません。何かアドバイス?ありがとう!

編集: 私はまだ何かが欠けていると思います。Bootstrap をダウンロードし、アプリ内の静的ディレクトリに解凍しました。

base.html を作成しました。

私のテンプレートには、次のものがあります。

ページを読み込もうとすると、フォームは読み込まれますが (うわー)、まだ CSS はありません。ページのソースを見ると、次のことがわかります。

しかし、Django はファイルを見つけられないようです。

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

django - Django フォームと django-bootstrap-toolkit を使用した HTML5 フォーム属性

を含むDjango 1.5アプリケーションでdjango-bootstrap-toolkitは、次の html 結果が必要です。

重要なのは、追加の「%」とtype="number"minおよびmax

ここに私のフォームコードがあります:

しかし、 htmltypeでは、minそしてmax欠落しています。

step="2"属性を取得する機会もありますか?

これは可能でしょうcrispy-formsか?

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

django - Django BooleanField にラベルが表示されない

私は Django フォームと Django Crispy Forms (テーマとして Bootstrap を使用) をいじっています。2 つのフィールドを定義しました。

フォームをレンダリングすると、test2 フィールドに次のようなラベルが表示されます。

その下に「その他のヘルプ テキスト」があります。

ただし、test1 (BooleanField) の場合、ラベルはテキスト ボックスの後に表示される値を変更するようです。

次のように表示する方法はありますか?

ありがとう!

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

python - Django クリスピー フォーム分割フィールド レイアウト

フォームテンプレートのさまざまな部分でさまざまなフィールドをレンダリングできるようにしたいクリスピーフォームがありますが、クリスピードキュメントHTMLでこれを行う方法が見つかりません。以下は、私たちがやろうとしていることを説明するために、わずかに作成されたコードです。

フォーム.py

template.html

これを達成するためのクリーンな方法を知っている人はいますか?


これまで検討して除外しなければならなかったアプローチは次のとおりです。

  • フィールドをクリスピーにレンダリングする代わりに、手動で HTML にフィールドを追加することができます。choiceただし、オプションがプログラムで決定されるフィールドが多数あるため、これはうまくいかないようです。
  • crispy.forms.layout.HTMLレイアウトの 2 つの異なる部分を分割する HTML を含むオブジェクトを使用するクリスピーなレイアウトを作成できます。しかし、HTML が多く、これを直接 python に埋め込むと保守が難しくなります。
  • カスタム レイアウト オブジェクトを作成してこれを行うこともできますが、これは非常に複雑になると予想されるため、これは最後の手段と考えたいと考えています。
  • クリスピーを使用せず、代わりにクリスピーの外でこれを実現する方法を探すこともできますが、そうすると、アプリケーション内の他のすべてのフォームとの一貫性が失われます。
0 投票する
1 に答える
2353 参照

django - Formクラスを変更せずにdjango-crispy-form FormHelperを使用することは可能ですか?

一貫性を保つために、ログインフォームでクリスピーを使用したいと思います。私は使用して'django.contrib.auth.views.login'おり、テンプレートをコーディングしているだけです。

問題は{% crispy form %}、送信ボタンも「次の」隠しフィールドも出力しないことです。

FormHelper外で作成する方法はありますかforms.py(contrib.authにあるので、拡張するAuthenticationFormか、そのようなものを試す必要があります)、変更せずにテンプレートで使用しますviews.py(contrib.authでも)

クラスを拡張するなどの忍術が必要な場合は、純粋なHTMLを使用しますがFormHelper、テンプレートレベルで「外部」を含める簡単な方法があれば、尋ねなかったことを後悔します