WebアプリケーションでCherryPy、Makoテンプレート、SQLAlchemyを使用しています。私はRuby on Railsのバックグラウンドから来ています。私は自分のモデルにいくつかのデータ検証を設定しようとしています。他のフィールドに値がある場合、「名前」フィールドに値があることを保証するための最良の方法を理解できません。私はSAValidationを使ってみましたが、列にvalidates_presence_of
を使用しても、必要な列が空白の新しい行を作成することができました。私はWTFormsを見てきましたが、それは重複したコードがたくさん含まれているようです - 私はすでにモデルクラスをテーブルの列に設定しています。 1つの値が必要です "?私は "skinny controller, fat model"の考え方から来て、validates_presence_of
またはvalidates_length_of
のようなモデルでRailsのようなメソッドを探していました。私のモデルが受け取るデータを検証し、検証が失敗したときにSession.add
/Session.merge
が確実に失敗するようにするにはどうすればよいですか?SQLAlchemy宣言型モデルのデータ検証
9
A
答えて
-4
結局、私はWTFormsを使用してしまいました。
10
validation methodsを追加するためのドキュメントをご覧ください。 POST dictを取り、必要なキーが存在することを確認し、装飾されたバリデーターを使って値を設定します(何か不具合があった場合にエラーを発生させる) "update"メソッドを追加することができます。
+1
検証メソッドは、一度に1つのフィールドに対してのみ機能します。彼は明らかにフィールド間の関係に依存する検証を意味します。 –
2
モデルデータの検証時にコードの重複を避けるために、私はSAValidationを書いています。少なくとも私たちのユースケースについては、私たちのためにうまくいきます。
私たちのテストでは、examples of the model's setupと検証作業を示すテストがあります。
関連する問題
- 1. 複数のデータベースシャーディングを持つSQLAlchemy宣言型モデル
- 2. SQLAlchemy宣言型:プライマリキーのないテーブル?
- 3. 変数宣言とデータ型
- 4. SQLAlchemy - 宣言的なもの
- 5. バリデータを実行中に辞書データを使用して宣言型SQLAlchemyモデルを更新する方法
- 6. メソッドの宣言型の検索
- 7. データ型のJava宣言混乱
- 8. Haskell:データ型の複数宣言
- 9. なぜsqlalchemy宣言型APIを使用しますか?
- 10. クラス宣言とインスタンス宣言の型キーワード
- 11. Data.Map型宣言
- 12. ダイナミック型宣言
- 13. SQLAlchemyのオブジェクトベースの既定値宣言的
- 14. 宣言的なSQLAlchemyのタグの辞書?
- 15. 空の型宣言
- 16. Haskellの型宣言
- 17. Haskellの型宣言
- 18. SoapUIのデータ型検証
- 19. Sqlalchemy ORMテーブル間の非宣言的リンク
- 20. 宣言できませんKubernetes API型宣言の型式
- 21. 2つのSQLAlchemy宣言型モデルは同じdeclarative_base()を共有する必要がありますか?
- 22. データ型宣言で複数の宣言エラーが発生しました
- 23. 型宣言pythonエラー
- 24. 角型モジュール宣言
- 25. Javaインター型宣言
- 26. Django、モデル宣言のループ
- 27. モデルと宣言の衝突
- 28. SQLAlchemy:ダブル1対1リレーションシップ宣言
- 29. SQLAlchemy宣言的拡張とエリクシル
- 30. SQLAlchemy - マッパー構成と宣言的ベース
コードの重複はどうでしたか?どのように使用しているのか少し説明できますか?私もレール開発者ですが、フラスコ+ sqlalchemyでアプリケーションを開発しようとしています...私はWTFormsを見たことがありますが、あなたは常にビューにバリデーションを保存しているという点で、それをモデルに格納するためには、より有効な(そしてより乾いた)感じがします。 – jbwiv