SerializerMethodField
全部标签 我有一个模型方法,要求将请求用户作为额外参数传入:模型方法:defhas_achieved(self,user):returnAwardLog.objects.filter(user=user,badge=self).count()>0使用DjangoRestFramework我想调用这个put不知道如何从Serializer传递额外的参数:classBadgeSerializer(serializers.ModelSerializer):achieved=serializers.SerializerMethodField(source='has_achieved(request.us
我有一个像这样的序列化器:classPersonSerializer(serializers.ModelSerializer):gender=serializers.SerializerMethodField()bio=BioSerializer()classMeta:model=Personfields=UserSerializer.Meta.fields+('gender','bio',)defget_gender(self,obj):returnobj.get_gender_display()我在执行GET请求时用它来显示“男”和“女”(代替“M”或“F”)。这很好用。但现在我正
序列化类高级用法之source使用source,字段参数,可以修改序列化字段名字原本序列化器中字段名,必须和表中的字段名一样,不一样会报错我们可以通过source字段来改变序列化器中的字段名,使得前端在展示的时候也修改一下字段名!!source也可以做跨表查询,通过外键字段,表名点外键出去的字段名字classBookSerializer(serializers.Serializer): publish=serializers.CharField(source='publish.email')#等价于book.publish.email查到当前书对象的文键出版社对象然后拿到该出版社对象的邮箱so
序列化类高级用法之source使用source,字段参数,可以修改序列化字段名字原本序列化器中字段名,必须和表中的字段名一样,不一样会报错我们可以通过source字段来改变序列化器中的字段名,使得前端在展示的时候也修改一下字段名!!source也可以做跨表查询,通过外键字段,表名点外键出去的字段名字classBookSerializer(serializers.Serializer): publish=serializers.CharField(source='publish.email')#等价于book.publish.email查到当前书对象的文键出版社对象然后拿到该出版社对象的邮箱so