I have a datatable for Order model which contains some fields from User model and is implemented using serializer as following
serializers.py
# customer order detail serializer
class CustomerOrderSerializer(serializers.ModelSerializer):
first_name = serializers.ReadOnlyField(source='user.first_name')
last_name = serializers.ReadOnlyField(source='user.last_name')
def __init__(self, *args, **kwargs):
remove_fields = kwargs.pop('remove_fields', None)
super(CustomerOrderSerializer, self).__init__(*args, **kwargs)
if remove_fields:
for field_name in remove_fields:
self.fields.pop(field_name)
class Meta:
model = Order
fields = ['id', 'amount', 'order_status', 'created', 'first_name', 'last_name']
read_only_fields = ['issue_date', 'first_name', 'last_name']
In views.py
class OrderList(generics.ListAPIView):
queryset = Order.objects.order_by('-created')
serializer_class = CustomerOrderSerializer
I am successfully able to get first_name & last_name fields as in datatable format as shown
However, my requirements is to filter/search in datatable on fields first_name & last_name which are from different model User
when I try to filter on those fields I get Following error:
Cannot resolve keyword 'first_name' into field. Choices are: ..., .., ..., ..
Can anyone help me understand, How we can filter on foreign key fields in django-rest datatables
