ArcheTypes:validatorのメモ

コンテンツのクラスに validate_foo(newvalue) というメソッド(fooはフィールド名)を作っておくと、勝手に呼び出してくれます。やってくれるお利口さんは、Products.ArcheTypes.BaseObject.BaseObject.validate_fieldメソッドさんです。

    def validate_field(self, name, value, errors):
        """Field's validate hook.

        Write a method: validate_foo(new_value) -> "error" or None
        If there is a validate method defined for a given field invoke
        it by name
        name -- the name to register errors under
        value -- the proposed new value
        errors -- dict to record errors in
        """
        methodName = "validate_%s" % name
        result = None
        if shasattr(self, methodName):
            method = getattr(self, methodName)
            result = method(value)
            if result is not None:
                errors[name] = result
        return result


Validator Reference