@@ -80,7 +80,6 @@ def __init_subclass_with_meta__(cls, model=None, registry=None, skip_registry=Fa
80
80
model , registry , only_fields , exclude_fields
81
81
)
82
82
mongoengine_fields = yank_fields_from_attrs (converted_fields , _as = Field )
83
-
84
83
if use_connection is None and interfaces :
85
84
use_connection = any ((issubclass (interface , Node ) for interface in interfaces ))
86
85
@@ -103,6 +102,9 @@ def __init_subclass_with_meta__(cls, model=None, registry=None, skip_registry=Fa
103
102
_meta .fields = mongoengine_fields
104
103
_meta .filter_fields = filter_fields
105
104
_meta .connection = connection
105
+ # Save them for later
106
+ _meta .only_fields = only_fields
107
+ _meta .exclude_fields = exclude_fields
106
108
107
109
super (MongoengineObjectType , cls ).__init_subclass_with_meta__ (
108
110
_meta = _meta , interfaces = interfaces , ** options
@@ -117,6 +119,16 @@ def __init_subclass_with_meta__(cls, model=None, registry=None, skip_registry=Fa
117
119
cls ._meta .fields .update (mongoengine_fields )
118
120
registry .register (cls )
119
121
122
+ @classmethod
123
+ def rescan_fields (cls ):
124
+ converted_fields , self_referenced = construct_fields (
125
+ cls ._meta .model , cls ._meta .registry , cls ._meta .only_fields ,
126
+ cls ._meta .exclude_fields
127
+ )
128
+ mongoengine_fields = yank_fields_from_attrs (converted_fields , _as = Field )
129
+ cls ._meta .fields .update (mongoengine_fields )
130
+
131
+
120
132
# noqa
121
133
@classmethod
122
134
def is_type_of (cls , root , info ):
0 commit comments