2016-10-11 3 views
0

Ich habe ein Modell Projekt, Aufgaben und Projekt hat viele Aufgaben, ich versuche, alle Aufgaben unter jedem Projekt aufzulisten.nicht in der Lage, Fremdschlüssel Beziehung in Django Ruhe Rahmen anzuzeigen

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 
     ] 
    } 
] 

ich nicht in der Lage bin Details der einzelnen Aufgaben, Aufgabenname angezeigt werden, Beschreibung, Status ..etc

Hier mein Serializer

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 

Hier ist mein Modell

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 

Antwort

1

Lesen Sie mehr über verschachtelte Serialisierer http://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objects. Sie müssen TaskSerilizer zu Ihrem ProjectSerializer

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' 
     ) 
hinzufügen
Verwandte Themen