Метод Django для возврата словарного значения из полезной нагрузки запроса

У меня есть класс сериализатора следующего вида

class HousingSerializer(serializers.ModelSerializer[Housing]):
    class Meta:
        model = Housing
        fields = "__all__"
        depth = 1

с полезной нагрузкой запроса [{"id":"1234","created_at":"2022-05-20T15:55:43.611922Z","updated_at":"2022-05-20T15:55:43.611938Z","status":"pending"}]%

Я хочу создать метод, который при задании параметра Housing 'id' должен возвращать статус из полезной нагрузки, в данном случае он должен возвращать статус 'pending'.

Думаю, вы можете использовать функцию API View.

from rest_framework.decorators import permission_classes, api_view
from rest_framework.permissions import AllowAny

@api_view(["GET"])
@permission_classes([AllowAny])
def get_status(request, id):
    try:
        housing = Housing.objects.get(pk=id)
        return Response({status: housing.status})
    except Housing.DoesNotExist:
        return Response(status=status.HTTP_400_BAD_REQUEST)

В urls.py вы можете добавить метод API.

urlpatterns = [
    ...
    path('housings/<int:id>', get_status, name="get_housing_status")
]

Надеюсь, это может помочь.

Вернуться на верх