feat(*) Add support to turn on/off reverse fields.

This commit is contained in:
Felipe Cardoso Martins 2017-01-17 23:30:23 -02:00
parent 5d6c7f2dc3
commit 0fb39927e5
2 changed files with 7 additions and 4 deletions

View File

@ -16,7 +16,7 @@ from .utils import (DJANGO_FILTER_INSTALLED, get_model_fields,
def construct_fields(options): def construct_fields(options):
_model_fields = get_model_fields(options.model) _model_fields = get_model_fields(options)
only_fields = options.only_fields only_fields = options.only_fields
exclude_fields = options.exclude_fields exclude_fields = options.exclude_fields
@ -54,6 +54,7 @@ class DjangoObjectTypeMeta(ObjectTypeMeta):
name=name, name=name,
description=attrs.pop('__doc__', None), description=attrs.pop('__doc__', None),
model=None, model=None,
reverse_fields=True,
local_fields=None, local_fields=None,
only_fields=(), only_fields=(),
exclude_fields=(), exclude_fields=(),

View File

@ -43,11 +43,13 @@ def maybe_queryset(value):
return value return value
def get_model_fields(model): def get_model_fields(options):
reverse_fields = get_reverse_fields(model) model = options.model
all_fields = sorted(list(model._meta.fields) + all_fields = sorted(list(model._meta.fields) +
list(model._meta.local_many_to_many)) list(model._meta.local_many_to_many))
all_fields += list(reverse_fields) if options.reverse_fields:
reverse_fields = get_reverse_fields(model)
all_fields += list(reverse_fields)
return all_fields return all_fields