如何设置需要POST请求信息的DJANGO REST?

时间:2017-09-28 00:21:00

标签: django django-rest-framework django-rest-viewsets

我正在尝试构建一个基于类的Django REST API,它从POST请求中获取数据并输出相关数据。

我在DB中有一个建筑物清单

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

用户将通过POST请求(即加利福尼亚州)提供状态,API应返回相应的建筑物(即金门大桥,TransAmerica)

我想我很难理解班级在request.data [' state_id']中的表现。我应该使用API​​View吗?这么多问题!

到目前为止,我在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 个答案:

答案 0 :(得分:1)

你应该检查Django休息框架序列化程序:http://www.django-rest-framework.org/tutorial/1-serialization/以基本了解drf以及如何使用它。

您可以在“创建序列化程序类”中找到问题的答案。