$ pip install drf-complete-autocomplete
$ pip install drf-complete-autocomplete[django-filter]
Settings:
from drf_complete_autocomplete.configuration import AutocompleteModelDescription
from my_app.models import MyModel
AUTOCOMPLETE_MODELS = [
AutocompleteModelDescription(
api_name='my_model',
model=MyModel,
value_field='pk',
label_field='__unicode__',
icontains_search_fields=['name'],
filterset=None, # django-filter FilterSet
order_by=['name'],
distinct=False,
results_limit=20,
),
]
Serializer:
...
from drf_autocomplete.serializers import WithAutocomplete
...
class SomeModelSerializer(WithAutocomplete, serializers.ModelSerializer):
...
class Meta:
model = SomeModel
fields = [
...
'related_to_my_model',
...
]
...
autocomplete_fields = {
'related_to_my_model': 'my_model',
}
View:
You can import drf_complete_autocomplete.views.RetrieveAutocompleteResultsApiView
and supply your AUTOCOMPLETE_MODELS
in urls file RetrieveAutocompleteResultsApiView.as_view(autocomplete_config=AUTOCOMPLETE_MODELS)
.
Or use mixin drf_complete_autocomplete.views.RetrieveAutocompleteResultsMixin
to create your own view.
The DRF complete autocomplete package is licensed under the FreeBSD License.