2016-08-11 9 views
1

Django Rest Framework JSON API을 사용하여 REST API를 만듭니다. 나는 (2도 관계) 관련 자원을 포함하는 것은 매우 간단 노력하고 있지만, 장고는 오류 응답 계속 :Django Rest Framework JSON API에 관련 리소스를 포함시키는 방법은 무엇입니까?

# models: 

class Household(models.Model): 
    ... 

class HouseholdMember(models.Model): 
    household = models.ForeignKey(Household) 
    ... 

class Subscription(models.Model): 
    subscriber = models.ForeignKey(HouseholdMember) 
    ... 

# serializers 

from rest_framework_json_api import serializers 

class SubscriptionSerializer(serializers.ModelSerializer): 
    class Meta: 
    model = Subscription 

내가 수 있도록하고 싶습니다 :

This endpoint does not support the include parameter for path... 

구조는이 같은 것입니다 다음과 같이 요청하십시오 : http://example.com/api/subscriptions?include=subscriber.household으로 가구 단위로 구독을 그룹화 할 수 있습니다. 그러나, 나는 이것을 어떻게하는지 간단히 알 수 없다. I know 나는 ResourceRelatedField으로 놀 필요가 있지만 어떻게 작동하는지 알기 위해 무언가 또는 너무 많은 초보자를 놓치고 있습니다. 어떤 도움이 필요합니까?

답변

1

글쎄요, 아마도 설명서에 언급되지 않았기 때문에 분명하지 않은 내용이 있었지만 장고 Rest Framework JSON API의 예제 디렉토리에있는 serializers.py 파일을 보면 내가 원하는 것을 수행하기 위해 included_serializers이라는 변수가 필요합니다. 예를 들면 다음과 같습니다.

# models: 

class Household(models.Model): 
    ... 

class HouseholdMember(models.Model): 
    household = models.ForeignKey(Household) 
    ... 

class Subscription(models.Model): 
    subscriber = models.ForeignKey(HouseholdMember) 
    ... 

# serializers 

from rest_framework_json_api import serializers 

class HouseholdSerializer(serializers.ModelSerializer): 
    class Meta: 
    model = Household 

class HouseholdMemberSerializer(serializers.ModelSerializer): 
    included_serializers = { 
    'household': HouseholdSerializer 
    } 

    class Meta: 
    model = HouseholdMember 

class SubscriptionSerializer(serializers.ModelSerializer): 
    included_serializers = { 
    'subscriber': SubscriberSerializer 
    } 

    class Meta: 
    model = Subscription