Serializar objetos con relación uno a uno Django

Soy un novato en django. Estoy trabajando en un api de descanso. Tengo una relación opcional “es una”, es decir, el estudiante es un empleado. Estoy tratando de serializar estos 2 modelos de modo que obtengo el resultado json combinado. Por favor, hágamelo saber si alguien puede ayudarme con esto. Gracias

class Employee(models.Model): full_name=models.CharField(max_length=100,blank=True) email_id=models.EmailField(max_length=100,blank=True) mobile_no=models.CharField(max_length=11,blank=True) is_job_ready=models.BooleanField(False) type=models.CharField(max_length=20,blank=True) location_preference=models.CharField(max_length=20,blank=True) class Student(models.Model): college=models.CharField(max_length=100) year=models.CharField(max_length=20) is_with_college=models.BooleanField() employee=models.OneToOneField(Employee,primary_key=True) 

El marco REST de Django tiene algunas herramientas interesantes para serializar objetos nesteds.

Necesitas lo que llaman una relación anidada . Me gusta esto –

 from rest_framework import serializers # define your models here ... class EmployeeSerializer(serializers.ModelSerializer): class Meta: model = Employee fields = ('full_name', 'email_id', 'mobile_no', 'is_job_ready', 'type', 'location_preference') class StudentSerializer(serializers.ModelSerializer): employee = EmployeeSerializer(read_only = True) class Meta: model = Student fields = ('college', 'year', 'is_with_college', 'employee') 

Luego, puedes cargar tu serializador y usarlo de esta forma:

 from myapp.models import StudentSerializer student = Student.objects.first() serializer = StudentSerializer(student) serializer.data # { 'college': 'Naropa University', # 'is_with_college': True, # 'year': '2015'} # 'employee': { # 'full_name' : 'Chogyam Trungpa', # 'email_id' : 'teacher@naropa.edu', # 'mobile_no' : '555-555-5555', # 'is_job_ready' : True, # 'type' :'Teacher', # 'location_preference' : 'Boulder, CO' # } # }