Это мои модели
class NumberList(models.Model):
userId = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=50)
number = models.PositiveIntegerField()
spam = models.BooleanField(default=False)
def __str__(self):
return str(self.number)
Это мой сериализатор класса
class FindNameSerializer(serializers.ModelSerializer):
class Meta:
model= NumberList
fields = ('name','number')
Это мои взгляды
class FindName(ListAPIView):
print("server error hai")
serializer_class = FindNameSerializer
def get_queryset(self, *args, **kwargs):
number = self.kwargs.get("number")
queryset = NumberList.objects.filter(number=number)
return queryset
, который фильтрует номер и возвращает имя и номер по следующему URL
path('find/<slug:number>/',FindName.as_view(), name='number'),
Я получаю следующий результат в моем API
[
{
"name": "Saiful Hasan",
"number": 8888888888
}
]
Однако моя цель также состоит в том, чтобы вернуть общее количество спама, сообщенного пользователю в моем API, и окончательный API должен выглядеть следующим образом
[
{
"name": "Saiful Hasan",
"number": 8826478938
"spam": 3
}
]
Количество спама можно рассчитать как
spam=NumberList.objects.filter(spam=True).count()
Как добавить спам в набор результатов запроса