問題タブ [cleaned-data]

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 投票する
4 に答える
11999 参照

python - Django フォームで ValidationError を発生させる問題

送信された URL がデータベースにまだ存在しないことを検証しようとしています。

Form クラスの関連部分は次のようになります。

問題は、送信した値に関係なく、 を上げられないことValidationErrorです。そして、メソッドで次のようなことをするとclean_url():

その後DoesNotExist、データベースに既に存在する URL に対してもエラーが発生します。何か案は?

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

mysql - MySQL 行の優先度

非常に見苦しく乱雑なデータでいっぱいのデータベース テーブルがあります。別のテーブルには、データのよりクリーンなバージョンがあり、ID でリンクされていますが、データの違いを確認するために使用するため、乱雑なデータセットを保持する必要があり、上書きできません。

データを新しいテーブルにマージしようとしています。または、両方のテーブルで単一のクエリを使用し、結果でクリーンなテーブルの結果を優先します。

したがってid=3 uglydata=x7z cleandata=xyz、 の場合はきれいなデータを取得し、cleandatanull の場合は醜いデータを取得します。cleandataMySQL が他のフィールドを上書きすることを期待して、 ASを選択しようとuglydataしましたが、うまくいきませんでした (そうです、奇妙で、うまくいかないと思いました)。

彼らはこれを行う良い方法ですか?

私が考えることができる他の解決策は、最初にきれいなデータから新しいテーブルに挿入し、次に入札が一意であるため、醜いデータから挿入することです。

でも、タイプとかで結果に優先順位を付けられるようになればいいなと思っています。

0 投票する
7 に答える
41626 参照

python - form.is_valid() が false の場合にデータにアクセスする方法

有効な Django フォームがあれば、form.cleaned_data でデータにアクセスできます。しかし、フォームが有効でない場合、つまり form.is_valid が false の場合に、ユーザーが入力したデータを取得するにはどうすればよいですか。

フォーム セット内のフォームにアクセスしようとしているので、form.data が混乱しているようです。

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

django - clean_data() には、入力されたデータの一部がありません

ユーザーが名前 (CharField)、年齢 (IntegerField)、および性別 (ChoiceField) に入力するための単純なフォームがあります。ただし、性別選択フィールドから取得されたデータは、cleaned_data() に表示されません。デバッガーを使用すると、データが正しい形式で受信されていることがはっきりとわかりますが、 form.cleaned_data() を実行するとすぐに、選択したフィールド データのすべての兆候が消えてしまいます。どんな助けでも大歓迎です。相対コードは次のとおりです。

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

django - Python - Django - フォームのchoicefieldとcleaned_data

clean_data の動作に問題があります。後でフォーム オブジェクトを再設定できるように、cleaned_data をセッションに保存したいと考えています。問題は、私の選択フィールドが実際の値ではなく、ドロップダウンの表示名を格納しているように見えることです。例えば:

Red を選択して form.cleaned_data['dropdown_element'] を使用すると、値 1 ではなく表示名 Red が取得されます。ラベルの代わりに値を取得する方法はありますか?

編集

見る:

形:

モデル:

基本的には、フリート フォーム データ (cleaned_data) をセッションに追加します。ただし、フリート フォームを保存するページに到達したら、次のように入力してみます。

そして、 form.is_valid() 行でエラーが発生します:

/vehicle/add/fleet/ int() 引数の TypeError は文字列または数値でなければなりません

私の現在の理論は、フリート_フォーム.cleaned_data["home_location"] (たとえば、値フィールドの整数ではなく表示値を格納することです)

その他の情報:

私はdjango 1.1を使用していましたが、django 1.3にアップグレードしました。他のすべての例では、ドロップダウンの表示値ではなく、ドロップダウンの値を取得しているように見えます。これが十分な情報であることを願っています!

助けてくれてありがとう

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

python - プレフィックス付きのフォームでの Django のキー エラー

1 ページに 2 つのフォームを使用しています (理由があります)。それらはモデル形式ではありません。プレフィックスを使用してそれらを検証しようとしています。ここで見つけました:Djangoで1つのページで複数のフォームを処理する適切な方法 しかし、cleaned_dataを取得しようとすると、キーエラーが発生します。これが私のコードの一部です:

そして、type_name に対して KeyError が発生します。追加しようとしましたcleaned_data['atype-type_name']-何も役に立ちません。

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

django - Django:cleaned_data をセッションに効果的に保存する

私のフォームの 1 つで、フォーム データを処理し、それをセッション変数に保存しています。

だから私が走るとき

私は実行します

しかし、これは非常に効率が悪いようです。私が試してみました

しかし、うまくいかないようです。

  • セッション変数にすべてのcleaned_data情報を保存するより良い方法はありますか?
  • 注意すべきセキュリティ上の懸念はありますか?
0 投票する
1 に答える
2817 参照

django - インラインフォームclean()から親フォームのcleaned_dataにアクセスします

インラインフォームのメインフォームがあります。インラインフォームのclean関数からメインフォームのcleaned_dataにアクセスすることは可能ですか?

これが私が尋ねている理由です。

メインフォームには、物件を売却するか賃貸するかを定義するフィールドがあります。インラインフォームには、販売価格フィールドまたはリース金額と保証金のフィールドが表示されます。物件が売りに出されている場合は、賃貸借と敷金のフィールドが空である必要があることを検証しようとしています。

フロントエンドインターフェイスのビューでこれを行うことはできますが、フロントエンドと管理者の両方のforms.pyで行うことは可能ですか?

0 投票する
4 に答える
3675 参照

django - Django MultipleChoiceFieldは、選択した値の順序を保持しません

order選択(ドキュメントのリスト)を追加の属性として保持するモデルを介して、多対多の関係に対応する複数選択フィールドを公開するDjangoModelFormがあります。フロントエンドでは、フィールドはadminと同様の2つの複数の選択フィールドとして表示されます。1つは使用可能な選択肢を一覧表示し、もう1つは選択した要素を保持します。

フォームは要素を正しく選択して保存できますが、それらは常に選択ではなく、元の選択の順序になっています。ブラウザは選択範囲を正しい順序で送信しますが、順序form.cleaned_data['documents']は常に元の選択順序です。

MultipleChoiceFieldが選択された要素の順序を尊重するようにするにはどうすればよいですか?

ありがとう。

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

python - 「TypeError: 文字列のインデックスは整数でなければなりません」(cleaned_data を使用する場合)

ここでエラーが発生します:

username = clean['username']ラインで。この正確な行を他の場所で問題なく使用できました。なぜ今問題になっているのですか?