Python 在传递序列化程序django rest框架时传递额外数据

Python 在传递序列化程序django rest框架时传递额外数据,python,django,api,serialization,django-rest-framework,Python,Django,Api,Serialization,Django Rest Framework,我希望在序列化程序中传递额外的数据,但无法这样做。下面是我的代码 views.py 我想传递设备id以及用户\ U数据。我试过查字典,但查不到数据。建议语法您的问题缺乏关于模型声明或序列化程序的任何实质性细节。然而,这看起来仍然是错误的。你不应该这样做 相反,您的模型应该是这样的 class User(model): # declarations of id, account_name, HTTP_DEVICE, etc. 然后你的序列化程序 class UserSerialize

我希望在序列化程序中传递额外的数据,但无法这样做。下面是我的代码 views.py


我想传递设备id以及用户\ U数据。我试过查字典,但查不到数据。建议语法

您的问题缺乏关于模型声明或序列化程序的任何实质性细节。然而,这看起来仍然是错误的。你不应该这样做

相反,您的模型应该是这样的

class User(model):

     # declarations of id, account_name, HTTP_DEVICE, etc.
然后你的序列化程序

class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = ('id', 'HTTP_DEVICE', 'account_name')
然后,序列化程序将具有所有这些字段


请参考

您可以向序列化程序传递上下文,如:

serializer = UserSerializer(data=request.data, context={'YOUR_CONTEXT': CONTEXT_OBJ})
然后将其放入您的验证方法中,如:

    def validate(self, data):
        CONTEXT_OBJ = self.context.get('YOUR_CONTEXT')
        ...
我希望这对你有帮助


祝你好运

我已经完全按照您所说的方式获得了所有内容,只需要知道如何将设备id和用户id数据传递到序列化程序中。我试过这样一本字典,但没用。queryset={'user\u data':request.data,'device\u id':request.META.get('HTTP\u device','')请发布您的UserSerializer代码。
    def validate(self, data):
        CONTEXT_OBJ = self.context.get('YOUR_CONTEXT')
        ...