我正在尝试构建一个基于类的 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')