問題タブ [colander]
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.
python - すべてのノードにアクセスできる Deform/Colander バリデーター?
Deform/Colander で、すべてのノード値にアクセスできるカスタム バリデータをどのように定義しますか。特定の値が有効かどうかを判断するために、2 つのフィールドの値にアクセスする必要がありますか?
python - Deform を使用して HTML コントロールのフォーム後処理エラー メッセージを報告する
Deformを使用すると、フォームのさまざまなフィールドに検証を追加できます。ただし、フォーム自体が有効であることを確認しますが、必ずしもフォーム処理が有効であることを意味するわけではありません。
たとえば、フォームが電子メール アドレスを持つ新しいユーザーを作成するためのものであるとします。フォームは有効ですが、フォームの処理 (この新しいユーザーをデータベースに挿入する処理) で、この電子メール アドレスを持つユーザーが既に存在することを示すデータベース整合性エラーが発生します。
電子メールがまだ使用されていないことを確認する特別なバリデーターを追加できることはわかっていますが、それでも、最初のトランザクションのチェックとコミットの間にコミットする同じ電子メールを使用する別の同時トランザクションが存在する可能性があります。終わり。
では、フォームの後処理エラーをユーザーに適切に報告するにはどうすればよいでしょうか?
フォームの横にあるエラー メッセージ (フラッシュ メッセージなど) を簡単に報告できますが、通常の検証エラーが処理されるのとまったく同じように、ウィジェットでエラーを直接報告する方法があるかどうかを知りたいです。
python - Colander で非シリアル化されたフィールドの名前を変更する
Pyramid/Cornice ベースのプロジェクトで、Colander を使用して JSON 文字列を Python オブジェクトに、またはその逆に変換しています。
異なる名前/キーにシリアル化/逆シリアル化できる方法はありますか?
水切りスキーマは次のとおりです。
そして、ここに入力JSONがあります
それはに変換されています:
これが私の質問です。同じ入力 JSON を次のように変換できますか?
ご協力いただきありがとうございます。
python - ザルで空のリストをキャッチ
colander
一部の Web サービスへの入力を検証 (および JSON データの逆シリアル化) するために使用しています。
空のリストをキャッチするルールを水切りスキーマに追加したいのですが、その方法がわかりません。
現在、次の例があり、f()
2 つの異なるデータ セットを使用した関数の呼び出しを示しています。空のリストcolander.Invalid
のために後で例外をトリガーしたいevents
提案?
python - Colander: None 値を許可するにはどうすればよいですか?
単純なスキーマがあるとします:
上記のスキーマで逆シリアル化しようとすると{'thing': None}
、次のエラーが発生します。
colander はNone
値のあるフィールドを欠落しているフィールドと同じように扱うようです。どうすればそれを回避し、thing
常に提供されるようにすることができますNone
か?
forms - フォーム検証の正しいアプローチはどれですか? Colander のスキーマ検証または Deform のフォーム検証?
プロジェクトの 1 つでPyramidを使い始めたばかりで、フォーム フィールドの値を取得して Web サービス呼び出しを行い、値の正確性を確認することで、フォーム フィールドの入力を検証する必要がある場合があります。たとえば、銀行の CUSTOMER-ID というフィールドがあります。それを(単独で)入力として受け取り、(のような)Webサービス呼び出しを行うことでサーバーレベルで検証する必要がありhttp://someotherdomain/validate_customer_id/?customer_id=<input_value>
ます。
フォーム スキーマ管理にはColanderを使用し、すべてのフォーム検証ロジックにはDeformを使用しています。CUSTOMER-ID ケースの検証ロジックをどこに配置する必要があるかについて混乱しています。それはMySchema().bind(customer_id=<input_value>)
(Webサービスを照会する遅延バリデーターを持っている)にありますか、それとも form.validate(request.POST.items()) にありますか? 延期されたバリデーターのパスを使用すると、 MySchema().bind
CUSTOMER colander.Invalid
-ID が正しくないというエラーが発生します。それはいいです。しかし、そのエラーはフォーム レベルではなく、スキーマ レベルにあります。では、これについてユーザーに適切に伝えるにはどうすればよいでしょうか。
私は Django フォームの経験が豊富なので、clean
メソッドのようなものを期待していました。form['customer_id'].error のようなフォーム エラーは、テンプレート レベルで期待しているものです。Pyramid の Deform または Colander で可能ですか?
python - Pyramid アプリで Colander を使用する
ピラミッドで記述された RESTFul API があります。ビュー関数は、request.POST および request.matchdict でデータを処理し、json 応答を返します。
例: ビュー クラス内のメソッド。
ご覧のとおり、ビューメソッド内で検証を行っていますが、これは避けたいと考えています。私の意図は、検証を実際の機能から分離することです。どうすればこれを処理できますか?
私は水切りhttp://cornice.readthedocs.org/en/latest/validation.html#using-colanderを見ました。しかし、私がまったく使用していないコーニスと統合されているようです。また、アプリ全体をコーニスに変換することはできません。私のアプリで上記のリンクと同じ方法でザルを使用することは可能ですか?
RESTFul API を書くのはこれが初めてで、ピラミッドと水切りの学習も始めたばかりです。君の力が必要。前もって感謝します。
python - フィールド間の検証を変形し、フィールドを強調表示しない
この例に従いましたが、プロジェクトに合わせて少し変更しました
これは私が持っているものです:
検証は問題なく機能します。要素を強調表示したくないだけです。
交換すると:
と
強調表示しますが、フォームの最初の要素を強調表示しますfirst_name
。これも間違っています。
小さな何かが欠けているような気がします。
アップデート
だから私は少し遊んでいました。
正しいフィールドの上にアラート メッセージ ボックス (js アラートではない) が表示されます。
これの代わりに、上記の例のように強調表示するフィールドが必要です。
pyramid - カスタム css_class を渡してボタンを変形させます
私は基本的なフォームとスキーマを持っています..
これで問題なく動作しますが、カスタム css クラスを送信ボタンに渡したいので、次のことを期待します。
しかし、これは機能しません。このクラス属性をこのようなボタンに渡すにはどうすればよいですか?
編集:私も試しました:
htmlをレンダリングするもの