DonorInformationDetailAPI" должен либо включать атрибут `queryset`, либо переопределять `get_queryset()`.
Я из этого кода получаю ошибку набора запросов (из-за закомментированного метода набора запросов). Ранее я получал результат, когда определял набор запросов вне GET, но это действие было неправильным... . Теперь я хочу определить набор запросов
queryset =DonorContactInfo.objects.filter(email__iexact=email)
Откуда и куда угодно, только не в методе GET... что мне делать?
class DonorInformationDetailAPI(ListAPIView):
"""
A sample endpoint to list all donors in the system.
* Requires token authentication.
* Only admin users are able to access this view.
"""
serializer_class = DonorContactInfoSerializer
# queryset = DonorContactInfo.objects.all()
permission_classes = [IsAuthenticatedOrReadOnly] # TODO change
pagination_class = AdminPanelsPagination
def get(self, request, *args, **kwargs):
"""return the list of the donor detail with that specific email"""
email = kwargs["email"]
queryset = DonorContactInfo.objects.filter(email__iexact=email)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
# def get_queryset(self):
# return ??
вот мой URL
path(
"donors/donor_information/<str:email>/",
DonorInformationDetailAPI.as_view(),
name="donors_information",
),
это ошибка
'DonorInformationDetailAPI' должен либо включать атрибут queryset
, либо переопределить метод get_queryset()
.
Montio вы можете использовать APIView вместо ListApiView и определить свою логику внутри метода get.
from rest_framework.views import APIView
class DonorInformationDetailAPI(APIView):
permission_classes = [IsAuthenticatedOrReadOnly] # TODO change
pagination_class = AdminPanelsPagination
def get(self, request, *args, **kwargs):
email = kwargs["email"]
obj=DonorContactInfo.objects.filter(email__iexact=email)
serializer=DonorContactInfoSerializer(obj)
return Response(serializer.data, status=status.HTTP_200_OK)