問題タブ [django-widget]
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.
jquery - ModelForm のすべての Django 日付フィールドのデフォルト ウィジェットを変更するにはどうすればよいですか?
一連の典型的なモデルが与えられた場合:
すべてのDateFieldのデフォルト ウィジェットをカスタム MyDateWidget に変更するにはどうすればよいでしょうか?
アプリケーションに日付を入力するための jQueryUI 日付ピッカーが必要なため、質問しています。
カスタム ウィジェットで django.db.models.DateField を拡張するカスタム フィールドを検討しました。これは、この種の全面的な変更を実装するための最良の方法ですか? このような変更には、特別な MyDateField をすべてのモデルに具体的にインポートする必要があります。これは、労力がかかり、開発者のエラーが発生しやすく (つまり、いくつかのモデルの DateField が通過します)、私の考えでは、労力の不必要な重複のように思えます。一方、models.DateField の標準バージョンと見なされるものを変更するのは好きではありません。
考えや意見をお待ちしております。
django - Djangoの特定のタイプのすべての組み込みフォームフィールドのデフォルトウィジェットをどのように変更しますか?
これは、ModelForm のすべての Django 日付フィールドのデフォルト ウィジェットをどのように変更しますか?のフォローアップです。.
非常に多数のモデル (A-ZZZ など) があり、制御できない他の開発者の入力によって成長し、すべての日付フィールドの入力方法を変更したいとします (つまり、jQueryUI を使用する)。その新しいウィジェットを使用してすべての日付フィールドが確実に入力されるようにする最善の方法は何ですか?
引用された質問からの1つの提案は次のとおりです。
ただし、明示的な ModelForm がない場合にこれを行うことは可能ですが、URL パターンはモデルから直接取得されますか? つまり、あなたのURL設定は次のようになります:
SomeModelA は、バックグラウンドで Django によって ModelForm に変換されるモデル (フォームではない) です。
現在、私のシステムには各モデルのフォームがありません。フォームを明示的に作成する唯一のポイントは、以前のソリューションで提案された formfield_callback を追加することですが、これは DRY の原則に反し、エラーが発生しやすく、労力がかかります。
(最後のスレッドで提案されているように) 特別なウィジェットを持つ独自のフィールドを作成し、組み込みの代わりにそれを使用することを検討しました。それほど労働集約的ではありませんが、エラーが発生する可能性があります (ただし、優れた grep で修正できないものは何もありません)。
提案や考えを歓迎します。
django - widgets/foreign.html ファイルは django トランクのどこにありますか?
ForeignKey フィールドの widgets/foreign.html テンプレートをオーバーライド (カスタム作成) したいのですが、ソースでこれを見つけることができません。Django SVN リポジトリを参照すると、これらのファイルがリビジョン 7966 で見つかりますが、このリビジョン以降は削除されています。
http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/templates/widget?rev=7967
フォーム選択フィールドを生成し、foreignkey フィールドの 'add another/new' リンク html を生成するコードはどこにありますか?
これをオーバーライドして、特定のモデル フィールドのカスタム フォーム ウィジェットを作成するにはどうすればよいでしょうか。
python - Django Adminで、Many-ManyRelationship管理ウィジェットでの外部キーの表示方法を変更したい
私は多対多の関係を持っています:
著者の管理インターフェースで、本のUnicode表示を使用する複数選択リストが表示されます。リストを2つの方法で変更したい:
1)管理インターフェースのみISBN番号を表示したい、それ以外の場所では、タイトルを表示したい「Book」オブジェクトを印刷するだけです。
2)多対多に対してMultipleSelectListよりも優れたウィジェットを使用するにはどうすればよいですか。代わりにCheckBoxSelectListを使用するように指定するにはどうすればよいですか?
django - django の SelectDateWidget の日付形式
SelectDateWidget は非常に便利ですが、通常は "%Y-%m-%d" の形式で日付を返すようです。フォーマット パラメータを使用せず、多くのドキュメントもありません。誰かがこれに遭遇したり、それを回避して日付の出力を別の形式にする方法を知っていますか? このチケット#6231があり、settings.py の DATE_FORMAT 設定を使用するための修正があると述べています (ただし、単に format パラメータを指定できない理由はわかりません)。これを実装するための 2 か月前のチケットにパッチが含まれているため、django のインストールにこのパッチだけを適用する方法がない限り、それを使用するには最新の開発バージョンの django を入手する必要があるようです。
django - DjangoWidgetMediaが機能しない
jQueryで機能を追加するため、ブロックのみを表示するウィジェットが必要です。ウィジェットの「メディア」クラスを介してJavaScriptとスタイルシートを含めようとしていますが、機能しません。
コードは次のとおりです。
任意の提案や助けをいただければ幸いです
django - Django MultiValueField - 選択肢を ChoiceField に渡す方法は?
charfield と choicefield を持つ multivaluefield があります。選択肢を Choicefield コンストラクターに渡す必要がありますが、それをカスタムの複数値フィールドに渡そうとすると__init__()
、予期しないキーワード引数 'choices' が含まれているというエラーが発生します。
残りのコードが機能することはわかっています。なぜなら、choices キーワード引数を__init__
and super から削除すると、multivaluefield が正しく表示されますが、選択肢がないからです。
これは、カスタムの複数値フィールドをセットアップする方法です。
そして、私はそれを次のように呼びます:
では、選択肢を ChoiceField フィールドに渡すにはどうすればよいでしょうか。
編集:
私はstefanwの提案を試みましたが、まだうまくいきません。私は logging.debug を使用して、init の最後に InputAndChoiceField の内容を出力しました。self.fields[1].choices には上記のように正しい値が含まれていますが、ブラウザには選択肢が表示されません。
python - DjangoMultiWidget電話番号フィールド
共通の"(" ")" "-"区切り文字を持つ2つのテキストフィールド(それぞれサイズ3、3、および4)を持つ電話番号入力用のフィールドを作成したいと思います。以下は、フィールドとウィジェットのコードです。最初のレンダリング中にフォームのフィールドを反復しようとすると、次のエラーが発生します(forループが電話番号フィールドに到達したときに発生します)。
レンダリング中に例外が発生しました:'NoneType'オブジェクトはサブスクライブできません
django - django数量フォームウィジェット
ドロップダウン選択ボックスである基本数量ウィジェットを開発したいと思います。これは、最大数量となる整数を消費し、ユーザーは 1 から最大数量まで選択できます。
最終的に、私のフォームはこのウィジェットを使用することになり、何らかの理由で指定された金額が最大値を超えている場合は、検証されません。(実際、通常のユーザーは最大数を超えて選択することはできませんが、サーバーに直接リクエストを送信することで試すことができると思います。)
これはどのように行うことができますか?
ありがとう
編集: 最初はこのようなものになると思いますが、フィールドをテキスト入力フィールドではなく、選択(1から最大数量まで)にしたいです。