2016-10-11 24 views
0

プロジェクト、タスク、およびプロジェクトのモデルがあり、多くのタスクがあります。各プロジェクトのすべてのタスクを一覧表示しようとしています。Djangoレストフレームワークで外部キー関係を表示できません

GET /api/project/ 

HTTP 200 OK 
Allow: GET, POST, HEAD, OPTIONS 
Content-Type: application/json 
Vary: Accept 

[ 
    { 
     "id": 2, 
     "name": "Project 2", 
     "task": [ 
      3 
     ] 
    }, 
    { 
     "id": 1, 
     "name": "Project 1", 
     "task": [ 
      4, 
      2, 
      1 
     ] 
    } 
] 

私は、タスク名、各タスクの詳細を表示することができないんだ、説明、

..etcステータスがここに私のシリアライザここ

from rest_framework.serializers import ModelSerializer 
from api.models import Project, Task 


class ProjectSerializer(ModelSerializer): 
    class Meta: 
     model = Project 
     fields = (
      'id', 
      'name', 
      'task' 
      ) 


class TaskSerializer(ModelSerializer): 

    class Meta: 
     model = Task 

は私のモデルは

class Project(models.Model): 

    # Fields 
    user = models.ForeignKey(User) 
    name = models.CharField(max_length=255) 

    # Relationship Fields 
    #user = models.ForeignKey(settings.AUTH_USER_MODEL,) 
    user = models.ForeignKey(User) 

    class Meta: 
     ordering = ('-created',) 

    def __unicode__(self): 
     return u'%s' % self.name 


class Task(models.Model): 

    # Fields 
    name = models.CharField(max_length=255) 

    # Relationship Fields 
    project = models.ForeignKey('Project', related_name='task') 

    class Meta: 
     ordering = ('-created',) 

    def __unicode__(self): 
     return u'%s' % self.name 
です

答えて

1

ネストされたシリアライザの詳細についてはhttp://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objectsを参照してください。

from rest_framework.serializers import ModelSerializer 
from api.models import Project, Task 

class TaskSerializer(ModelSerializer): 
    class Meta: 
     model = Task 

class ProjectSerializer(ModelSerializer): 
    task = TaskSerializer(many=True) 

    class Meta: 
     model = Project 
     fields = (
      'id', 
      'name', 
      'task' 
     ) 
を追加する必要があります。
関連する問題