2017-09-28 70 views
1

我想構建一個基於類的Django REST API,它接收來自POST請求的數據並輸出相關數據。如何設置需要POST請求信息的DJANGO REST?

我有建築物的名單在DB

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

用戶將通過POST請求(即加州)供應狀態,則API應返回適當的建築(如金門大橋,泛美)

我想我只是很難理解這個類是如何在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') 
+0

覆蓋您的視圖中的創建方法....按照此鏈接https://stackoverflow.com/questions/40999386/custom-function-which-performs-create-and-update-on-drf-modelviewset – amrit

+1

覆蓋在視圖中創建方法不是正確的方法。使用DRF和序列化器就像我在我的答案中所描述的那樣,只需在Field上使用'required'屬性。 –

回答