我有一个模型序列化器类,其中有一个额外的字段,我想序列化它。下面是我的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')
我用下面的方法称这种选择器。
serialized_data = BaseUserSerializer(user, data={"user_type": 0, "password": password})
但这不起作用..
我想要嵌套JSON格式的序列化输出,这是我创建另一个序列化器的原因。
必需的输出
"user_type": 0,
"user": {
"username": "ABCED",
"first_name": "Deendayal",
"last_name": "Garg",
"email": "deen@abc.com",
"mobile_no": "9833213601",
"password": "hard"
}
答案 0 :(得分: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
作为“根”(在视图中)。