Django Rest Framework фильтрует результаты, отображаемые сериализатором в запросе Model.objects.all()
Я пытаюсь запросить всю мою базу данных пользователей, но добавить пользователя в json ответ только если поле account_type равно "supplier", прямо сейчас он просто добавляет каждого пользователя в json ответ
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']
текущий ответ JSON
[
{
"user": 1,
"company": "kyle att",
"email": "<omitted>",
"pk": 1,
"account_type": "user"
},
{
"user": 2,
"company": "kyle google",
"email": "<omitted>",
"pk": 2,
"account_type": "supplier"
}
]
желаемый ответ JSON
[
{
"user": 2,
"company": "kyle google",
"email": "<omitted>",
"pk": 2,
"account_type": "supplier"
}
]
Нашел ответ в документации django rest framework, если кто-то ищет:
https://www.django-rest-framework.org/api-guide/filtering/#djangofilterbackend
Измените 'queryset' следующим образом:
queryset = UserProfile.objects.filter(account_type='supplier')