summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sqlalchemy/mapping/properties.py5
-rw-r--r--test/mapper.py3
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/sqlalchemy/mapping/properties.py b/lib/sqlalchemy/mapping/properties.py
index f3862ddd9..922aab453 100644
--- a/lib/sqlalchemy/mapping/properties.py
+++ b/lib/sqlalchemy/mapping/properties.py
@@ -80,7 +80,10 @@ class DeferredColumnProperty(ColumnProperty):
def lazyload():
clause = sql.and_()
for primary_key in self.parent.pks_by_table[self.parent.primarytable]:
- clause.clauses.append(primary_key == self.parent._getattrbycolumn(instance, primary_key))
+ attr = self.parent._getattrbycolumn(instance, primary_key)
+ if not attr:
+ return None
+ clause.clauses.append(primary_key == attr)
return sql.select([self.parent.table.c[self.key]], clause).scalar()
return lazyload
diff --git a/test/mapper.py b/test/mapper.py
index 51751de6f..bcc6de098 100644
--- a/test/mapper.py
+++ b/test/mapper.py
@@ -184,6 +184,9 @@ class DeferredTest(MapperSuperTest):
'description':deferred(orders.c.description)
})
+ o = Order()
+ self.assert_(o.description is None)
+
def go():
l = m.select()
o2 = l[2]