Skip to content

Commit 9551098

Browse files
author
Jacob Foster
committed
Reorganize for clarity
1 parent 74e4e1a commit 9551098

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

graphene_django/utils.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@ class LazyList(object):
2121
DJANGO_FILTER_INSTALLED = False
2222

2323

24-
def get_reverse_fields(model):
24+
def get_reverse_fields(model, local_field_names):
2525
for name, attr in model.__dict__.items():
26+
# Don't duplicate any local fields
27+
if name in local_field_names:
28+
continue
29+
2630
# Django =>1.9 uses 'rel', django <1.9 uses 'related'
2731
related = getattr(attr, 'rel', None) or \
2832
getattr(attr, 'related', None)
@@ -44,22 +48,18 @@ def maybe_queryset(value):
4448

4549

4650
def get_model_fields(model):
47-
reverse_fields = get_reverse_fields(model)
48-
all_fields = [
51+
local_fields = [
4952
(field.name, field)
5053
for field
5154
in sorted(list(model._meta.fields) +
5255
list(model._meta.local_many_to_many))
5356
]
5457

5558
# Make sure we don't duplicate local fields with "reverse" version
56-
all_field_names = [field[0] for field in all_fields]
57-
actual_reverse_fields = [
58-
reverse_field for reverse_field in reverse_fields
59-
if reverse_field[0] not in all_field_names
60-
]
59+
local_field_names = [field[0] for field in local_fields]
60+
reverse_fields = get_reverse_fields(model, local_field_names)
6161

62-
all_fields += list(actual_reverse_fields)
62+
all_fields = local_fields + list(reverse_fields)
6363

6464
return all_fields
6565

0 commit comments

Comments
 (0)