1

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

我有数据库中的建筑物列表

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

用户将通过 POST 请求(即加利福尼亚州)提供状态,API 应返回适当的建筑物(即金门大桥,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')
4

1 回答 1

1

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

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

于 2017-09-28T11:09:31.680 回答