added content of PR #688 with a test to proove it is a bit right
This commit is contained in:
@@ -390,10 +390,16 @@ class TopLevelDocumentMetaclass(DocumentMetaclass):
|
||||
new_class._fields['id'] = ObjectIdField(db_field='_id')
|
||||
new_class._fields['id'].name = 'id'
|
||||
new_class.id = new_class._fields['id']
|
||||
|
||||
# Prepend id field to _fields_ordered
|
||||
if 'id' in new_class._fields and 'id' not in new_class._fields_ordered:
|
||||
new_class._fields_ordered = ('id', ) + new_class._fields_ordered
|
||||
new_class._db_field_map['id'] = '_id'
|
||||
new_class._reverse_db_field_map['_id'] = 'id'
|
||||
if 'id' in new_class._fields_ordered:
|
||||
# An existing id field will be overwritten anyway, so remove it
|
||||
loc = new_class._fields_ordered.index('id')
|
||||
new_class._fields_ordered = new_class._fields_ordered[:loc] + \
|
||||
new_class._fields_ordered[loc+1:]
|
||||
else:
|
||||
# Prepend id field to _fields_ordered
|
||||
new_class._fields_ordered = ('id', ) + new_class._fields_ordered
|
||||
|
||||
# Merge in exceptions with parent hierarchy
|
||||
exceptions_to_merge = (DoesNotExist, MultipleObjectsReturned)
|
||||
|
||||
Reference in New Issue
Block a user