2017-01-15 2 views
1

Пожалуйста, извините меня за этот глупый вопрос, я новичок, и я не могу найти свой путь через документы.Как присоединиться к столам в django

У меня есть две модели:

class Student (models.Model): 
     name = models.CharField(max_length=40) 
     family = models.CharField(max_length=40) 
     school = models.ForeignKey(School) 

    class School (models.Model): 
     name = models.CharField(max_length=40) 
     rate = models.IntegerField(default=-1) 

Я хочу иметь список студентов, который включает в себя все данные школы в нем:

[ 
    { 
     "name": "John", 
     "family": "Doe" 
     "school": { 
      "name": "J.F.K", 
      "rate": 1 
     } 
    } 
    ... 
] 

Как я могу сделать это с django ORM?

ответ

3

Этот вопрос не имеет ничего общего с приложением Django и всем, что связано с сериализаторами DRF, которые хорошо документированы.

Для получения полного описания см. serialiser relations, в частности раздел о вложенных сериализаторах на полпути.

3

Вы можете легко адаптировать Джанго Rest фреймворка documentation on nested relationships для ваших нужд:

from rest_framework import serializers 
from my_models import School, Student 

class SchoolSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = School 
     fields = ('name', 'rate') 


class StudentSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Student 
     fields = ('name', 'family', 'school') 

    school = SchoolSerializer(read_only=True) 
Смежные вопросы