Skip to content

Commit e9b15bc

Browse files
committed
wip: convert_field_to_union
1 parent 976ad09 commit e9b15bc

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

graphene_mongo/converter.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,12 @@ def convert_field_to_list(field, registry=None):
110110
return List(base_type, description=get_field_description(field, registry), required=field.required)
111111

112112

113-
@convert_mongoengine_field.register(mongoengine.EmbeddedDocumentField)
114113
@convert_mongoengine_field.register(mongoengine.GenericReferenceField)
114+
def convert_field_to_union(field, registry=None):
115+
pass
116+
117+
118+
@convert_mongoengine_field.register(mongoengine.EmbeddedDocumentField)
115119
@convert_mongoengine_field.register(mongoengine.ReferenceField)
116120
def convert_field_to_dynamic(field, registry=None):
117121
model = field.document_type

graphene_mongo/tests/models.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,21 @@ class Reporter(mongoengine.Document):
6767
first_name = fields.StringField(required=True)
6868
last_name = fields.StringField(required=True)
6969
email = fields.EmailField()
70+
awards = fields.ListField(fields.StringField())
7071
articles = fields.ListField(fields.ReferenceField(Article))
7172
embedded_articles = fields.ListField(fields.EmbeddedDocumentField(EmbeddedArticle))
7273
embedded_list_articles = fields.EmbeddedDocumentListField(EmbeddedArticle)
73-
awards = fields.ListField(fields.StringField())
7474

7575

7676
class Player(mongoengine.Document):
7777

7878
meta = {'collection': 'test_player'}
79-
first_name = mongoengine.StringField(required=True)
80-
last_name = mongoengine.StringField(required=True)
81-
opponent = mongoengine.ReferenceField('Player')
82-
players = mongoengine.ListField(mongoengine.ReferenceField('Player'))
83-
articles = mongoengine.ListField(mongoengine.ReferenceField('Article'))
84-
embedded_list_articles = mongoengine.EmbeddedDocumentListField(EmbeddedArticle)
79+
first_name = fields.StringField(required=True)
80+
last_name = fields.StringField(required=True)
81+
opponent = fields.ReferenceField('Player')
82+
players = fields.ListField(fields.ReferenceField('Player'))
83+
articles = fields.ListField(fields.ReferenceField('Article'))
84+
embedded_list_articles = fields.EmbeddedDocumentListField(EmbeddedArticle)
8585

8686

8787
class Parent(mongoengine.Document):
@@ -90,9 +90,11 @@ class Parent(mongoengine.Document):
9090
'collection': 'test_parent',
9191
'allow_inheritance': True
9292
}
93-
bar = mongoengine.StringField()
94-
loc = mongoengine.MultiPolygonField()
95-
# reference = GenericReferenceField()
93+
bar = fields.StringField()
94+
loc = fields.MultiPolygonField()
95+
generic_reference = fields.GenericReferenceField(
96+
choices=[Article, Reporter, ]
97+
)
9698

9799

98100
class CellTower(mongoengine.Document):

0 commit comments

Comments
 (0)