2015-11-26 5 views
6

私はfollowersというメソッドフィールドを持っています。私はSerializerMethodFieldにフォロワーのリストを取得:シリアライザメソッドフィールドでネストされたシリアライザを返します

followers = serializers.SerializerMethodField() 

私はBaseUserSmallSerializerと呼ばれる特定のシリアライザとの結果をフォーマットします。どのように私は達成するためにget_followersメソッドを実装する必要がありますか?

答えて

21

これを試してください。

followers = BaseUserSmallSerializer(source='get_followers', many=True) 

OR

あなたはmethodfield内のシリアライザを使用することができます。

def get_followers(self, obj): 
    followers_queryset = #get queryset of followers 
    return BaseUserSmallSerializer(followers_queryset, many=True).data 
+0

'followers'は私のクラスBaseUserのプロパティではないので動作しません。 'BaseUser 'オブジェクトには' get_following '属性がありません。 –

+1

OK、モデルメソッドを記述するか、serializerMethodフィールドの中でBaseUserSmallSerializerを使用できます。 –

+1

OK私はそれを得た。迅速かつ完全な答えをありがとう。記録のために、ソリューション2が私が探していたものです。 –

関連する問題