Django REST Framework:将模型从可调用序列化为主键

时间:2013-08-23 10:07:37

标签: django django-rest-framework serializer

我有一个如下所示的序列化程序:

class FooSerializer(serializers.ModelSerializer):
    barid = serializers.IntegerField(source='get_bar')

    class Meta:
        model = Foo
        fields = ('id', 'barid',)

可调用get_bar返回Bar个对象。我希望序列化输出到FooSerializer,只需将barid映射到返回的Bar对象的主键。但是,当我运行上面的内容时,返回的是Bar个对象的unicode表示。

如何获取主键整数?谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用SerializerMethodField返回值,例如:

class FooSerializer(serializers.ModelSerializer):

    def getBarId(self, foo):
        return foo.get_bar().id

    barid = serializers.SerializerMethodField('getBarId')