Commit b065d72c authored by PJ Janse van Rensburg's avatar PJ Janse van Rensburg

Merge branch 'peewee-composite-keys'

parents 95d4d102 8d8495d9
...@@ -8,6 +8,7 @@ next release ...@@ -8,6 +8,7 @@ next release
* Upgrade Leaflet and Leaflet.draw plugins, used for geoalchemy integration * Upgrade Leaflet and Leaflet.draw plugins, used for geoalchemy integration
* Specify `minimum_input_length` for ajax widget * Specify `minimum_input_length` for ajax widget
* SQLAlchemy fix that lets you use inline model forms where models have multiple primary keys * SQLAlchemy fix that lets you use inline model forms where models have multiple primary keys
* Peewee: support composite keys
* MongoEngine: when searching/filtering the input is now regarded as case-insensitive by default * MongoEngine: when searching/filtering the input is now regarded as case-insensitive by default
1.5.2 1.5.2
......
...@@ -184,6 +184,10 @@ class ModelView(BaseModelView): ...@@ -184,6 +184,10 @@ class ModelView(BaseModelView):
return get_primary_key(self.model) return get_primary_key(self.model)
def get_pk_value(self, model): def get_pk_value(self, model):
if self.model._meta.composite_key:
return tuple([
model._data[field_name]
for field_name in self.model._meta.primary_key.field_names])
return getattr(model, self._primary_key) return getattr(model, self._primary_key)
def scaffold_list_columns(self): def scaffold_list_columns(self):
...@@ -440,6 +444,8 @@ class ModelView(BaseModelView): ...@@ -440,6 +444,8 @@ class ModelView(BaseModelView):
return count, query return count, query
def get_one(self, id): def get_one(self, id):
if self.model._meta.composite_key:
return self.model.get(**dict(zip(self.model._meta.primary_key.field_names, id)))
return self.model.get(**{self._primary_key: id}) return self.model.get(**{self._primary_key: id})
def create_model(self, form): def create_model(self, form):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment