0

두 가지 모델 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 객체에 대한 다른 serializer를 작성하고이 메서드에서 serialize하는 데 사용하는 것이 좋습니다.

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')