2

私はSQLAlchemyに比較的慣れていません。

私はsqlalchemy デコレータを使用modelしたカスタム関数で非常に単純です:@validates

class User(db.Model):
  ...
  email = db.Column(db.String(255)) # don't worry about uniqueness for now

  @validates('email')
  def validate_email(self, key, address):
    assert '@' in address # of course a regex is better, I know
    return address

そして後で:

try:
  user = User('fidel#cuba.cu')
  db.session.add(user)
  db.session.commit()
except Exception as e:
  print e.message # returns an empty string ''

私がやりたいこと:

...
except Exception as e:
  # json_error is a custom function of my own 
  return json_error(e.message, 400) 

問題は、SQLAlchemy のカスタム検証ルールにカスタム エラー メッセージを添付するにはどうすればよいかということです。たぶん、メッセージを含むカスタム例外を作成する必要がありますか?

4

1 に答える 1

4

アサーションは 2 番目の引数 (アサーションが失敗した場合に使用するメッセージ) を取ることができます。

class User(db.Model):
  # ... snip ...

  @validates('email')
  def validate_email(self, key, address):
    assert '@' in address, "Invalid email"
    return address
于 2012-10-03T13:33:36.327 に答える