Django : Добавление дополнительного действия к SetViewModel при использовании NestedViewSetMixin
Я пытаюсь добавить действие к SetViewModel в Django, эта SetViewModel уже успешно использует NestedViewSetMixin: вот структура моего api вызова :
/api/startups/1/investments
Таким образом, здесь будут перечислены все инвестиции для стартапа с идентификатором 1.
Теперь я хотел бы добавить дополнительное действие, чтобы отображать инвестиции только для определенных стартапов, которые находятся в активном состоянии. Вызов api будет выглядеть следующим образом :
/api/startups/1/investments/get_active_investment/
В данный момент я получаю этот код ошибки :
AttributeError at /api/startups/1/investments/get_active_investment/
Got AttributeError when attempting to get a value for field `collected_amount` on serializer `InvestmentSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `QuerySet` instance.
Original exception text was: 'QuerySet' object has no attribute 'collected_amount'.
Request Method: GET
Вот мой код для SetViewModel :
class InvestmentViewSet(NestedViewSetMixin, ModelViewSet):
"""
A viewset that provides `retrieve`, `create`, and `list` actions for Investments.
"""
model = Investment
serializer_class = InvestmentSerializer
queryset = Investment.objects.all()
@action(detail=False, methods=['Get'])
def get_active_investment(self, *args, **kwargs):
"""Get active investment
Only One investment/startup is active
"""
queryset = self.get_queryset().filter(active=True)
serializer = self.get_serializer(queryset, many=False)
return Response(serializer.data)