diff --git a/odata/state.py b/odata/state.py index 2162f0e..45ec04f 100644 --- a/odata/state.py +++ b/odata/state.py @@ -259,6 +259,14 @@ def _clean_new_entity(self, entity): else: if value.__odata__.id: insert_data['{0}@odata.bind'.format(prop.name)] = value.__odata__.id + + # Put the foreign key back into the request for compatibility with + # systems that don't handle {entity} odata.bind correctly + try: + insert_data[prop.foreign_key] = getattr(value, prop.foreign_key) + except: + pass + else: insert_data[prop.name] = self._clean_new_entity(value)