1

私はカスタムdb.Propertyサブクラスを作成:必要なカスタムプロパティ

class ModelFoo(db.Model): 
    foo = PropertyFoo(required=True) 

だから私はそれらをテストします:

class PropertyFoo(db.StringProperty): 
    def validate(self, value): 
    # Yes this is a pointless validator, but please read on 
    return value 

    def get_value_for_datastore(self, model_instance): 
    return super(PropertyFoo, self).get_value_for_datastore(model_instance) 

    def make_value_from_datastore(self, value): 
    return super(PropertyFoo, self).make_value_from_datastore(value) 

今、私もdb.Modelサブクラスを作成

>>> m = ModelFoo() 
# No errors :(
>>> m.foo 
# No errors still 
>>> print m.foo 
'None' # <-- Why??? 

を私がすべき次のようなエラーが予想されます:

BadValueError: Property foo is required 

私のカスタムPropertyサブクラスがrequiredである場合、BadValueErrorが生成されることを確認するにはどうすればよいですか?私はPropertyFooの定義で何かを逃していますか?私はあなたがスーパークラスのvalidateメソッドを呼び出す必要があると考えてい

+1

は、サブクラスのメソッドにはポイントがありません - あなただけそれらを完全に省略することができます。 –

答えて

3

:あなただけのスーパーを呼び出す場合ちなみに

class PropertyFoo(db.StringProperty): 
    def validate(self, value): 
    super(PropertyFoo, self).validate(value) #Base implementation checks 
    #Do your other check here raising BadValueError 
    return value 
+0

ありがとう、私はあなたが投稿した直前にそれを得た:)他の誰かが恩恵を受けるかもしれないので、ここにそれを保存します:) – Kit

関連する問題