私は器用さのあるPloneを使用しており、不変デコレータを使用して2つの関連フィールドを検証しています。すべてが機能しますが...一般的なエラーメッセージを1つの特定のフィールドに移動したいと思います。
これどうやってするの?マーティン・アスペリによる3年前の提案を見つけました。それを行うのがいかにクールかについて、次のように述べています。
http://plone.293351.n2.nabble.com/plone-app-form-does-not-display-invariant-errors-td348710.html
しかし、彼らは解決策を思いつきませんでした。
私もそれを行う方法を見つけましたが、それは醜いです:このコードのフォームの更新メソッドに配置します:
for widget in widgets:
name = widget.context.getName()
if errors:
for error in errors:
if isinstance(error, Invalid) and name in error.args[1:]:
if widget._error is None:
widget._error = error
フィールドの名前を発生したInvalidに渡すことができ、すべてのフィールドと各フィールドのすべてのエラーをループする必要がない、より低いレベルの実装はありませんか?!?