Skip to content

Commit

Permalink
Use mapper.primary_key_from_instance in QueryAjaxModelLoader
Browse files Browse the repository at this point in the history
  • Loading branch information
vstoykov committed Oct 6, 2015
1 parent 2e626e3 commit 122e641
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions flask_admin/contrib/sqla/ajax.py
Expand Up @@ -22,9 +22,11 @@ def __init__(self, name, session, model, **options):
if not self.fields:
raise ValueError('AJAX loading requires `fields` to be specified for %s.%s' % (model, self.name))

self._mapper = model._sa_class_manager.mapper

self._cached_fields = self._process_fields()

primary_keys = model._sa_class_manager.mapper.primary_key
primary_keys = self._mapper.primary_key
if len(primary_keys) > 1:
raise NotImplementedError('Flask-Admin does not support multi-pk AJAX model loading.')

Expand All @@ -47,11 +49,14 @@ def _process_fields(self):

return remote_fields

def primary_key_from_instance(self, instance):
return self._mapper.primary_key_from_instance(instance)[0]

def format(self, model):
if not model:
return None

return (getattr(model, self.pk), as_unicode(model))
return (self.primary_key_from_instance(model), as_unicode(model))

def get_one(self, pk):
return self.session.query(self.model).get(pk)
Expand Down

0 comments on commit 122e641

Please sign in to comment.