2017-08-03 41 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') 
     ... 

我希望這可幫你!

祝你好運!