0

我有一个看起来像这样的序列化程序:

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 表示。

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

4

1 回答 1

2

您可以使用 aSerializerMethodField返回一个值,例如:

class FooSerializer(serializers.ModelSerializer):

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

    barid = serializers.SerializerMethodField('getBarId')
于 2013-08-23T10:17:51.300 回答