传递额外的数据,但无法这样做。下面是我的代码 views.py传递额外的数据,而通过串行器Django休息框架
device_id = request.META.get('HTTP_DEVICE', '')
user_data = request.data
serializer = UserSerializer(data=user_data)
我想与USER_DATA通过设备ID为好。我试过一本字典,但没有收到数据。建议语法
传递额外的数据,但无法这样做。下面是我的代码 views.py传递额外的数据,而通过串行器Django休息框架
device_id = request.META.get('HTTP_DEVICE', '')
user_data = request.data
serializer = UserSerializer(data=user_data)
我想与USER_DATA通过设备ID为好。我试过一本字典,但没有收到数据。建议语法
您的问题缺乏关于您的模型声明或序列化的任何实质细节。但是,这仍然看起来错了。你不应该这样做。
相反,你的模型应该是这样的
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')
然后,串行器将所有这些领域。
我已经得到了你所说的一切,只需要知道如何将user_data中的device_id传递到序列化程序。试过这样的字典,但它没有奏效。 queryset = {'user_data':request.data,'device_id':request.META.get('HTTP_DEVICE','')} –
你可以通过上下文来你的序列化,如:像你的validate方法
serializer = UserSerializer(data=request.data, context={'YOUR_CONTEXT': CONTEXT_OBJ})
然后得到它:
def validate(self, data):
CONTEXT_OBJ = self.context.get('YOUR_CONTEXT')
...
我希望这可帮你!
祝你好运!
请发布您的UserSerializer代码。 –