Skip to content

Commit

Permalink
Using class_mapper for finding primary key
Browse files Browse the repository at this point in the history
  • Loading branch information
danielholmstrom committed May 10, 2014
1 parent 2e5820f commit e4cdace
Showing 1 changed file with 9 additions and 10 deletions.
19 changes: 9 additions & 10 deletions dictalchemy/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@
"""
from __future__ import absolute_import, division

from sqlalchemy.orm import (RelationshipProperty, ColumnProperty,
SynonymProperty)
from sqlalchemy.orm import (
RelationshipProperty,
ColumnProperty,
SynonymProperty,
class_mapper,
)
from sqlalchemy.orm.collections import InstrumentedList, MappedCollection
from sqlalchemy.orm.dynamic import AppenderMixin
from sqlalchemy.orm.query import Query
Expand Down Expand Up @@ -48,14 +52,9 @@ def get_primary_key_properties(model):
:returns: Set of column keys
"""
# Find primary keys
primary_keys = set()
for k in model.__mapper__.iterate_properties:
if hasattr(k, 'columns'):
for c in k.columns:
if c.primary_key:
primary_keys.add(k.key)
return primary_keys
return set(column.key
for column
in class_mapper(model.__class__).primary_key)


def arg_to_dict(arg):
Expand Down

0 comments on commit e4cdace

Please sign in to comment.