Skip to content

Commit 9231c19

Browse files
committed
feat: Use model._fields directly.
1 parent cd52a5c commit 9231c19

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

graphene_mongo/tests/test_utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@
55
from ..utils import (
66
get_model_fields, is_valid_mongoengine_model
77
)
8-
from .models import Reporter
8+
from .models import Reporter, Child
99

1010
def test_get_model_fields_no_duplication():
1111
reporter_fields = get_model_fields(Reporter)
1212
reporter_name_set = set(reporter_fields)
1313
assert len(reporter_fields) == len(reporter_name_set)
1414

1515

16+
def test_get_base_model_fields():
17+
child_fields = get_model_fields(Child)
18+
assert all(field in set(child_fields) for field in ['bar', 'baz'])
19+
1620
def test_is_valid_mongoengine_mode():
1721
assert is_valid_mongoengine_model(Reporter)
1822

graphene_mongo/utils.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,16 @@
22
import mongoengine
33

44
from collections import OrderedDict
5-
from mongoengine.base.fields import BaseField
65

76

87
def get_model_fields(model, excluding=None):
98
if excluding is None:
109
excluding = []
1110
attributes = dict()
12-
for attr_name in vars(model):
11+
for attr_name, attr in model._fields.items():
1312
if attr_name in excluding:
1413
continue
15-
attr = getattr(model, attr_name)
16-
if isinstance(attr, BaseField):
17-
attributes[attr_name] = attr
18-
14+
attributes[attr_name] = attr
1915
return OrderedDict(sorted(attributes.items()))
2016

2117

0 commit comments

Comments
 (0)