I am trying to query my entire user database but only add the user to the json response if the field account_type is "supplier", right now it is just adding every user to the json response
models.py
class UserProfile(models.Model):
<omitted>
account_type = models.CharField(max_length=200, default=None)
...<omitted>
views.py
class getusers(viewsets.ModelViewSet):
# Database model
queryset = UserProfile.objects.all()
# Serializer - this performs the actions on the queried database entry
serializer_class = GetUsersSerializer
serializers.py
class GetUsersSerializer(serializers.ModelSerializer):
class Meta:
model=UserProfile
fields=['user','company','email','pk', 'account_type']
current JSON response
[
{
"user": 1,
"company": "kyle att",
"email": "<omitted>",
"pk": 1,
"account_type": "user"
},
{
"user": 2,
"company": "kyle google",
"email": "<omitted>",
"pk": 2,
"account_type": "supplier"
}
]
desired JSON response
[
{
"user": 2,
"company": "kyle google",
"email": "<omitted>",
"pk": 2,
"account_type": "supplier"
}
]
CodePudding user response:
Change the 'queryset' as below:
queryset = UserProfile.objects.filter(account_type='supplier')
CodePudding user response:
Found the answer in django rest framework docs if anyone is looking:
https://www.django-rest-framework.org/api-guide/filtering/#djangofilterbackend