Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在DRF中将实例传递给序列化程序是否是强制性的?_Python_Django_Django Rest Framework - Fatal编程技术网

Python 在DRF中将实例传递给序列化程序是否是强制性的?

Python 在DRF中将实例传递给序列化程序是否是强制性的?,python,django,django-rest-framework,Python,Django,Django Rest Framework,假设我有一个serializeDeviceGroup和一个APIView类,用于将设备发布到组中 DeviceGroup的序列化程序是 class DeviceGroupSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source='token', format='hex', read_only=True) class Meta: model = DeviceGroup

假设我有一个serialize
DeviceGroup
和一个APIView类,用于将设备发布到组中

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()
在上面的post函数中,必须创建序列化程序实例并检查序列化程序是否有效,然后返回响应

设备和
DeviceGroup
之间的关系是一个设备只能在一个组上,一个组可以有多个设备(设备ID列表)


如果我需要使用
DeviceGroupSerializer
发布设备列表,post函数应该是什么?我不清楚这个序列化程序和视图部分

Django REST框架是松散耦合的,所以您可以绕过序列化程序

但是,根据您正在做的工作,这可能需要一些工作。请注意,对于POST,您可以自己执行一些检查


Django REST框架性能优化的Tom Christies演示了如何删除框架的部分。

Django REST框架是松散耦合的,因此可以绕过序列化程序

但是,根据您正在做的工作,这可能需要一些工作。请注意,对于POST,您可以自己执行一些检查


Django REST framework性能优化上的Tom Christies演示了如何删除框架的部分。

请给我一个关于我还必须做什么的粗略代码,好吗?这是不可能的,因为它太依赖于您要做的事情。此外,该链接确实为您提供了足够的信息来实现这一点。请您给我一个关于我还必须做什么的粗略代码,好吗?这是不可能的,因为这太取决于您正在尝试做什么。此外,链接确实为您提供了足够的信息来实现这一点。