2017-12-21 10 views
0

私は2つのモデルUserとItemを持っています。 モデルアイテムはモデルIDを持つcomplerte関連モデルの詳細を取得する:Dango REST

class Item 
    owner = models.ForeignKey(User, related_name='items',null=True) 

です。ユーザーには複数のアイテムがあります。ユーザーシリアライザは

class UserSerializer(serializers.ModelSerializer): 

class Meta: 
model = User 
    fields = ('id','username','items') 

です。ユーザーのすべてのアイテムのリストにアクセスできるようにします。しかし、ここで項目項目は「項目ID」のみを返します。ユーザーに関連する項目モデル全体が必要です。どうすれば入手できますか?

答えて

1

関連オブジェクトのカスタマイズリスト(items)の場合は、SerializerMethodFieldを使用できます。私はItemオブジェクトの別のシリアライザを作成し、このメソッドでシリアライズするために使用することをお勧めします。

class ItemSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Item 

class UserSerializer(serializers.ModelSerializer): 
    items = serializers.SerializerMethodField() 

    def get_items(self, obj): 
     return ItemSerializer(obj.items, many=True).data 

    class Meta: 
     model = User 
     fields = ('id','username','items') 
関連する問題