I need to filter API response based on URL parameters that both exact match and also the substring of the parameter matches in Django. The API call would be : "http://127.0.0.1:8000/showjoineduserdata?phonenumber=3349279_copy&firstname=Olivier_copy"
**models.py**
from django.db import models
class Joineduserdatanew(models.Model):
surname = models.TextField(db_column='Surname', blank=True, null=True) # Field name made lowercase.
firstname = models.TextField(db_column='Firstname', blank=True, null=True) # Field name made lowercase.
phonenumber = models.TextField(db_column='PhoneNumber', blank=True, null=True) # Field name made lowercase.
email = models.TextField(db_column='Email', blank=True, null=True) # Field name made lowercase.
login = models.TextField(db_column='Login', blank=True, null=True) # Field name made lowercase.
racfid = models.TextField(db_column='RACFid', blank=True, null=True) # Field name made lowercase.
assignee = models.TextField(db_column='Assignee', blank=True, null=True) # Field name made lowercase.
company_or_group = models.TextField(db_column='Company_or_Group', blank=True, null=True) # Field name made lowercase.
groupname = models.TextField(db_column='GroupName', blank=True, null=True) # Field name made lowercase.
admin = models.TextField(db_column='Admin', blank=True, null=True) # Field name made lowercase.
usertype = models.TextField(db_column='UserType', blank=True, null=True) # Field name made lowercase.
segid = models.TextField(blank=True, null=True)
roleid = models.IntegerField(blank=True, null=True)
segment = models.TextField(blank=True, null=True)
role = models.TextField(blank=True, null=True)
sno = models.AutoField(primary_key=True)
class Meta:
managed = False
db_table = 'joineduserdatanew'
**serialize.py**
from dataclasses import field
from rest_framework import serializer
from usersearch_api.models import Joineduserdatanew
class JoineduserdatanewSerialization(serializers.ModelSerializer):
class Meta:
model=Joineduserdatanew
fields=('surname','firstname','phonenumber','email','login','racfid','assignee','company_or_group','groupname','segment','role','admin','usertype')
**views.py**
from usersearch_api.serialization import JoineduserdatanewSerialization
from rest_framework.response import Response
from rest_framework.decorators import api_view
from usersearch_api.models import Joineduserdatanew
from rest_framework.generics import ListAPIView
from rest_framework.viewsets import ModelViewSet
class UserSearchAPIView(ListAPIView):
serializer_class=JoineduserdatanewSerialization
queryset=Joineduserdatanew.objects.all()
#filter_class = UserDataFilter
filter_backends = [DjangoFilterBackend]
filterset_fields = ['surname','firstname','login','racfid','assignee','phonenumber','company_or_group','email','segment']
please install django-filter library, for installation follow this procedure
https://django-filter.readthedocs.io/en/stable/guide/install.html