fixed pull queries for embeddeddocumentlistfields
Updated mongoengine.queryset.transform.update method to handle EmbeddedDocuementListField during pull operations in DB using mongoegning ORM fixed : .udpate(pull__emb_doc__emb_doc_list=doc)
This commit is contained in:
parent
bf30aba005
commit
c6f0d5e478
@ -314,11 +314,17 @@ def update(_doc_cls=None, **update):
|
|||||||
field_classes = [c.__class__ for c in cleaned_fields]
|
field_classes = [c.__class__ for c in cleaned_fields]
|
||||||
field_classes.reverse()
|
field_classes.reverse()
|
||||||
ListField = _import_class('ListField')
|
ListField = _import_class('ListField')
|
||||||
if ListField in field_classes:
|
EmbeddedDocumentListField = _import_class('EmbeddedDocumentListField')
|
||||||
# Join all fields via dot notation to the last ListField
|
if ListField in field_classes or EmbeddedDocumentListField in field_classes:
|
||||||
|
# Join all fields via dot notation to the last ListField or EmbeddedDocumentListField
|
||||||
# Then process as normal
|
# Then process as normal
|
||||||
|
if ListField in field_classes:
|
||||||
|
_check_field = ListField
|
||||||
|
else:
|
||||||
|
_check_field = EmbeddedDocumentListField
|
||||||
|
|
||||||
last_listField = len(
|
last_listField = len(
|
||||||
cleaned_fields) - field_classes.index(ListField)
|
cleaned_fields) - field_classes.index(_check_field)
|
||||||
key = '.'.join(parts[:last_listField])
|
key = '.'.join(parts[:last_listField])
|
||||||
parts = parts[last_listField:]
|
parts = parts[last_listField:]
|
||||||
parts.insert(0, key)
|
parts.insert(0, key)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user