2017-03-04 45 views
1

假設我有一個序列化DeviceGroup和一個APIView類用於將設備發佈到組中。是否將實例傳遞給DRF中的串行器?

爲DeviceGroup串行器是

class DeviceGroupSerializer(serializers.ModelSerializer): 
    id = serializers.UUIDField(source='token', format='hex', read_only=True) 
    class Meta: 
     model = DeviceGroup 
     fields = ['id','name'] 

class DevicesGroupsAPIView(APIView): 
    permission_classes = (permissions.IsAuthenticated,) 
    def post(self, request, token=None, format=None): 
     print('reqquest', request.data) 
     print('token', token) 
     device_group_instance = DeviceGroup.objects.get(token=token) 
     for device_token in request.data['devices']: 
      device = Device.objects.get(token=device_token, owner=request.user) 
      device.group = device_group_instance 
      device.save() 

在上述職位的功能,是必須先創建序列化的實例,並檢查是否串是有效的,那麼返回的響應。

設備和DeviceGroup之間的關係是一個設備可以在只有一組,一組可以有多個設備(設備ID列表)

後功能應該怎樣,如果我需要使用DeviceGroupSerializer發佈設備列表?我不明白這個序列化器,並清楚地查看部分。

回答

0

Django REST框架鬆散耦合,因此您可以繞過序列化程序。

但是,根據你在做什麼,這可能需要一些工作。請注意,對於POST,您可以自行執行一些檢查。

Tom Christies post關於Django REST框架的性能優化說明了如何去除部分框架。

+0

你能告訴我一個關於我還有什麼還要做的粗略代碼嗎? – pythonBeginner

+0

這是不可能的,因爲它太依賴於你正在嘗試做什麼。而且,鏈接確實給你足夠的實現。 – Linovia

相關問題