擅长:python、mysql、java
<p>不如。。。。。</p>
<p>在MemberSerializer上,定义一个字段,如下所示:</p>
<pre><code>groups = MembershipSerializer(source='membership_set', many=True)
</code></pre>
<p>然后在您的成员资格序列化程序上,您可以创建:</p>
<pre><code>class MembershipSerializer(serializers.HyperlinkedModelSerializer):
id = serializers.Field(source='group.id')
name = serializers.Field(source='group.name')
class Meta:
model = Membership
fields = ('id', 'name', 'join_date', )
</code></pre>
<p>它的总体效果是创建一个序列化的值groups,它的源具有您想要的成员身份,然后它使用自定义序列化程序提取您想要显示的位。</p>
<p>编辑:正如@bryanph所评论的,在DRF 3.0中,<code>serializers.field</code>被重命名为<code>serializers.ReadOnlyField</code>,因此应该是:</p>
<pre><code>class MembershipSerializer(serializers.HyperlinkedModelSerializer):
id = serializers.ReadOnlyField(source='group.id')
name = serializers.ReadOnlyField(source='group.name')
class Meta:
model = Membership
fields = ('id', 'name', 'join_date', )
</code></pre>
<p>对于任何现代实现</p>