Skip to content

Commit b78c8a3

Browse files
committed
fix: don't overwrite any fields already converted
1 parent ff4548f commit b78c8a3

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

graphene_mongo/types.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,20 @@ def __init_subclass_with_meta__(cls, model=None, registry=None, skip_registry=Fa
121121

122122
@classmethod
123123
def rescan_fields(cls):
124+
"""Attempts to rescan fields and will insert any not converted initially"""
125+
124126
converted_fields, self_referenced = construct_fields(
125-
cls._meta.model, cls._meta.registry, cls._meta.only_fields,
126-
cls._meta.exclude_fields
127+
cls._meta.model, cls._meta.registry,
128+
cls._meta.only_fields, cls._meta.exclude_fields
127129
)
130+
128131
mongoengine_fields = yank_fields_from_attrs(converted_fields, _as=Field)
129-
cls._meta.fields.update(mongoengine_fields)
132+
133+
# The initial scan should take precidence
134+
for field in mongoengine_fields:
135+
if field not in cls._meta.fields:
136+
cls._meta.fields.update({field: mongoengine_fields[field]})
137+
# Self-referenced fields can't change between scans!
130138

131139

132140
# noqa

0 commit comments

Comments
 (0)