我希望在序列化程序中传递额外的数据,但无法这样做。以下是我的代码 views.py
device_id = request.META.get('HTTP_DEVICE', '')
user_data = request.data
serializer = UserSerializer(data=user_data)
我想用user_data传递设备ID。我尝试了一本字典,但它没有得到数据。建议语法
答案 0 :(得分: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')
然后,序列化器将具有所有这些字段。
答案 1 :(得分:0)
您可以将上下文传递给您的Serializer,如:
serializer = UserSerializer(data=request.data, context={'YOUR_CONTEXT': CONTEXT_OBJ})
然后在您的验证方法中获取它:
def validate(self, data):
CONTEXT_OBJ = self.context.get('YOUR_CONTEXT')
...
我希望这可以帮到你!
祝你好运!