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

する必要があり、シリアライザは、これらのフィールドのすべてを持っています。私はこの月を願って

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

:その後、

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

など、あなたのvalidateメソッドでそれを得る:

あなたが好きなあなたのシリアライザにコンテキストを渡すことができdjango rest framework documentation.

+0

device_idとuser_dataの両方をシリアライザに渡す方法を知っておく必要があるというだけのやり方があります。このような辞書を試しましたが、それは仕事をしませんでした。 queryset = {'user_data':request.data、 'device_id':request.META.get( 'HTTP_DEVICE'、 '')} –

0

参照してください。助けます!

幸運を祈る!

関連する問題