2017-08-03 45 views
-5

传递额外的数据,但无法这样做。下面是我的代码 views.py传递额外的数据,而通过串行器Django休息框架

device_id = request.META.get('HTTP_DEVICE', '') 
user_data = request.data 
serializer = UserSerializer(data=user_data) 

我想与USER_DATA通过设备ID为好。我试过一本字典,但没有收到数据。建议语法

+0

请发布您的UserSerializer代码。 –

回答

0

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

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

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') 

然后,串行器将所有这些领域。

请参考django rest framework documentation.

+0

我已经得到了你所说的一切,只需要知道如何将user_data中的device_id传递到序列化程序。试过这样的字典,但它没有奏效。 queryset = {'user_data':request.data,'device_id':request.META.get('HTTP_DEVICE','')} –

0

你可以通过上下文来你的序列化,如:像你的validate方法

serializer = UserSerializer(data=request.data, context={'YOUR_CONTEXT': CONTEXT_OBJ}) 

然后得到它:

def validate(self, data): 
     CONTEXT_OBJ = self.context.get('YOUR_CONTEXT') 
     ... 

我希望这可帮你!

祝你好运!