Lookup¶
There is the Lookup dataclass for defining lookup configurations.
To customize lookups you should define lookups dictionary in the
serializer’s Meta class.
Valid parameters:
serializer: A custom serializer for options.filterset: If you need a custom filter, for example, if you have a modal on the frontend with an object list and filters, you can define a custom filterset.search_fields: Every lookup has a search filter by default. If it is a queryset field, you can define the model’s fields to be used for search, or alternatively, you can define it as a property in the model.pagination_class: A pagination class, orNoneif you don’t need it.
Example:
from drf_lookup import Lookup
from rest_framework import serializers
class LookupCategorySerializer(serializers.Serializer):
id = serializers.ReadOnlyField(source='pk')
name = serializers.ReadOnlyField(source='__str__')
is_public = serializers.BooleanField()
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ('id', 'title', 'category')
lookups = {
'category': Lookup(serializer=LookupCategorySerializer),
}