Skip to content

Commit

Permalink
Merge pull request #667 from tbeadle/api_docs
Browse files Browse the repository at this point in the history
Fix the auto-generated documentation for filters.
  • Loading branch information
Carlton Gibson committed Apr 5, 2017
2 parents 58cb77a + 276b309 commit d491703
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 1 deletion.
4 changes: 4 additions & 0 deletions django_filters/compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ def is_crispy():
except ImportError:
coreapi = None

try:
import coreschema
except ImportError:
coreschema = None

def remote_field(field):
"""
Expand Down
1 change: 1 addition & 0 deletions django_filters/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ def __init__(self, field, lookup_choices, *args, **kwargs):
}
widget = LookupTypeWidget(**defaults)
kwargs['widget'] = widget
kwargs['help_text'] = field.help_text
super(LookupTypeField, self).__init__(fields, *args, **kwargs)

def compress(self, data_list):
Expand Down
9 changes: 8 additions & 1 deletion django_filters/rest_framework/backends.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ def get_schema_fields(self, view):
# filter's attribute name. Notably, this includes `MultiWidget`, where query
# params will be of the format `<name>_0`, `<name>_1`, etc...
assert compat.coreapi is not None, 'coreapi must be installed to use `get_schema_fields()`'
assert compat.coreschema is not None, 'coreschema must be installed to use `get_schema_fields()`'

filter_class = getattr(view, 'filter_class', None)
if filter_class is None:
Expand All @@ -85,6 +86,12 @@ def get_schema_fields(self, view):

return [] if not filter_class else [
compat.coreapi.Field(
name=field_name, required=False, location='query', description=six.text_type(field.field.help_text))
name=field_name,
required=False,
location='query',
schema=compat.coreschema.String(
description=six.text_type(field.field.help_text)
)
)
for field_name, field in filter_class().filters.items()
]

0 comments on commit d491703

Please sign in to comment.