Как настроить 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 и о том, как его использовать.
Ответ на ваш вопрос вы найдете в разделе "Создание класса сериализатора".