0

同じタイプの他のオブジェクトへの参照を含むことができるオブジェクトがあります。私のバリデーターでは、参照がそれ自体ではないことを確認したいと思います。これは可能ですか?

class MyObject(db.Model):

  def not_self_validator(value):
    if self._my_entity == value: #something like this..
      logging.warn('attempted to set object to itself')
      raise ValueError('Unable to set an object to itself')

  _my_entity = db.ReferenceProperty(db._SELF_REFERENCE,required=False,default=None,validator=not_self_validator)
4

1 に答える 1

1

プロパティバリデーターは任意のメソッド/関数を受け取ることができますが、そのメソッドを自分自身に結合することはできません。ただし、検証ルーチンを次のようなものに適合させることができます。

def not_self_validator(value):
  #is checks for same address(pointer) whereas == will call the equality method
  if value._my_entity is value:
    logging.warn('attempted to set object to itself')
    raise ValueError('Unable to set an object to itself')
于 2012-07-18T16:32:34.617 に答える