如何在序列化程序中获取字段值

Naz*_*med 0 django serialization django-models django-serializer

我想获取传递给函数中的序列化程序的id
id = serializers.IntegerField(label='ID')以获取配置文件对象

def profile_info(self, obj)

但它给出的错误idIntegerField请传递 int 或 string

任何人都可以告诉我如何获取在id字段中传递的值,谢谢。下面是我的序列化程序代码

class UserSerializer(serializers.ModelSerializer):
    id = serializers.IntegerField(label='ID')
    # print ('dadddaaa ',serializers.data)
    profile = serializers.SerializerMethodField('profile_info')
    username = serializers.CharField()
    first_name = serializers.CharField()
    last_name = serializers.CharField()
    # Nazir = serializers.CharField()
    # profile = UsersSerializer(Profile.objects.get(User.objects.get(pk=serializers.data['id'])))
    def profile_info(self, obj): 
        # print ('selffff   ', serializers)
        prof_obj = Profile.objects.get(user=User.objects.get(pk=id))
        return {'id':prof_obj.id}
Run Code Online (Sandbox Code Playgroud)

She*_* Fn 5

我正在寻找答案,但没有一个对我有用,但我是从 django it self 得到的

您可以通过使用 initial_data 来获取它,因为 inital_data 返回查询字典

self.initial_data['id'] 
Run Code Online (Sandbox Code Playgroud)