diff --git a/flask_sqlalchemy/model.py b/flask_sqlalchemy/model.py index 5e5ae797..43f76b95 100644 --- a/flask_sqlalchemy/model.py +++ b/flask_sqlalchemy/model.py @@ -118,5 +118,9 @@ class Model(object): query = None def __repr__(self): - pk = ', '.join(to_str(value) for value in inspect(self).identity) + identity = inspect(self).identity + if identity is None: + pk = "(transient {0})".format(id(self)) + else: + pk = ', '.join(to_str(value) for value in identity) return '<{0} {1}>'.format(type(self).__name__, pk) diff --git a/tests/test_model_class.py b/tests/test_model_class.py index c64d8ad3..4e381bcc 100644 --- a/tests/test_model_class.py +++ b/tests/test_model_class.py @@ -43,6 +43,7 @@ class Report(db.Model): db.create_all() u = User(name='test') + assert repr(u).startswith("'