2016-01-28 54 views
1

我有一個模型串行器類,其中有一個額外的字段,我想序列化它。下面是我serilizer ..如何在模型串行器中傳遞額外的參數

from rest_framework import serializers 
from .models import WUser 


class UserTypeSerializer(serializers.Serializer): 
    user_type = serializers.IntegerField(min_value=0, max_value=8, default=0) 


class BaseUserSerializer(serializers.ModelSerializer): 
    user_type = UserTypeSerializer() 

    class Meta: 
     model = WUser 
     fields = ('user_type', 'username', 'email', 'first_name', 'last_name', 'password', 'mobile_no') 

我打電話這serailizer下面方法..

serialized_data = BaseUserSerializer(user, data={"user_type": 0, "password": password}) 

但這不是工作..

我想在嵌套的JSON形式序列化輸出是我創建另一個序列化器的原因。

所需的輸出

 "user_type": 0, 
     "user": { 
      "username": "ABCED", 
      "first_name": "Deendayal", 
      "last_name": "Garg", 
      "email": "[email protected]", 
      "mobile_no": "9833213601", 
      "password": "hard" 
     } 

回答

0

你做一個不必要的(和錯誤的)間接和你向後嵌套的seializers。試試這個:

from rest_framework import serializers 
from .models import WUser 

class BaseUserSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = WUser 
     fields = ('user_type', 'username', 'email', 'first_name', 'last_name', 'password', 'mobile_no') 

class UserTypeSerializer(serializers.Serializer): 
    user_type = serializers.IntegerField(min_value=0, max_value=8, default=0) 
    user = BaseUserSerializer() 

,並創建UserTypeSerializer爲 「根」(我在視圖E)。

+0

請檢查更新的問題....我添加了所需的JSON響應... – Naresh

+0

已更新的回答。 –