【发布时间】:2013-08-23 10:07:36
【问题描述】:
我有一个如下所示的序列化程序:
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 表示。
如何取回主键整数?谢谢。
【问题讨论】:
-
以下也可以解决问题
barid = serializers.Field(source='get_bar.id')。请注意,如果serializers.Field是只读字段,则可以只使用它,因为如果您从不更新它,输入内容并不重要。 -
谢谢@TomChristie,效果很好!不知道您可以像这样在可调用对象上使用点符号。如果您在下面发布,我会将其标记为正确答案。
标签: django django-rest-framework serialization