mirror of
https://github.com/graphql-python/graphene-django.git
synced 2025-04-09 03:34:21 +03:00
Drop reverse flag, remove duplicates in get_model_fields
This commit is contained in:
parent
ca06d74195
commit
74e4e1aa77
|
@ -1,21 +1,7 @@
|
|||
|
||||
|
||||
from ..utils import get_model_fields, get_reverse_fields
|
||||
from ..utils import get_model_fields
|
||||
from .models import Film, Reporter
|
||||
|
||||
|
||||
def test_get_reverse_fields_correct():
|
||||
reporter_reverse_fields = get_reverse_fields(Reporter)
|
||||
reporter_field_names = [field[0] for field in reporter_reverse_fields]
|
||||
assert sorted(reporter_field_names) == [
|
||||
'articles', 'films'
|
||||
]
|
||||
|
||||
film_reverse_fields = get_reverse_fields(Film)
|
||||
film_field_names = [field[0] for field in film_reverse_fields]
|
||||
assert film_field_names == ['details']
|
||||
|
||||
|
||||
def test_get_model_fields_no_duplication():
|
||||
reporter_fields = get_model_fields(Reporter)
|
||||
reporter_name_set = set([field[0] for field in reporter_fields])
|
||||
|
|
|
@ -33,7 +33,7 @@ def get_reverse_fields(model):
|
|||
yield (name, new_related)
|
||||
elif isinstance(related, models.ManyToOneRel):
|
||||
yield (name, related)
|
||||
elif isinstance(related, models.ManyToManyRel) and attr.reverse and not related.symmetrical:
|
||||
elif isinstance(related, models.ManyToManyRel) and not related.symmetrical:
|
||||
yield (name, related)
|
||||
|
||||
|
||||
|
@ -52,7 +52,14 @@ def get_model_fields(model):
|
|||
list(model._meta.local_many_to_many))
|
||||
]
|
||||
|
||||
all_fields += list(reverse_fields)
|
||||
# Make sure we don't duplicate local fields with "reverse" version
|
||||
all_field_names = [field[0] for field in all_fields]
|
||||
actual_reverse_fields = [
|
||||
reverse_field for reverse_field in reverse_fields
|
||||
if reverse_field[0] not in all_field_names
|
||||
]
|
||||
|
||||
all_fields += list(actual_reverse_fields)
|
||||
|
||||
return all_fields
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user