Как настроить DJANGO REST, для которого требуется информация из POST-запроса?

Я пытаюсь создать основанный на классе REST API Django, который принимает данные из запроса POST и выводит соответствующие данные.

У меня есть список зданий в БД

State         Building
California    Golden Gate Bridge
New York      Empire State
California    TransAmerica
New York      Brooklyn Bridge

Пользователь предоставит штат через запрос POST (например, Калифорния), API должен вернуть соответствующее здание (например, Golden Gate Bridge, TransAmerica)

Я думаю, мне просто трудно понять, как класс воспринимает request.data ['state_id']. Должен ли я использовать APIView? Так много вопросов!

Пока у меня есть это в моем view.py

class BuildingViewSet(viewsets.ModelViewSet):
    queryset = BuildingRule.objects.values('building_name').distinct()
    serializer_class = BuildingSerializer

    def post(self, request, *args, **kwargs):
        queryset = BuildingRule.objects.filter(state_name=request.data['state_id'])
        return Response(queryset.values_list('building_name', flat=True))

Это в моем serializer.py

class BuildingSerializer(serializers.ModelSerializer):
    class Meta:
        model = BuildingRule
        fields = ('building_name',)

Это мой url.py:

 router.register(r'buildings', views.BuildingsViewSet, base_name='Building')

1 ответ

Вы должны ознакомиться с Django rest framework Serializer: http://www.django-rest-framework.org/tutorial/1-serialization/ чтобы получить общее представление о drf и о том, как его использовать.

Ответ на ваш вопрос вы найдете в разделе "Создание класса сериализатора".

Другие вопросы по тегам