python - Serialize Objects with One-to-One Relationship Django -
i newbie in django. working on rest api. have optional "is a" relationship i.e student employee. trying serialize these 2 models such combined json result. please let me know if can me this. thanks
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)
the django rest framework has nice tools serializing nested objects.
you need call nested relationship. -
from rest_framework import serializers # define 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') then, can load serializer , use -
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' # } # }
Comments
Post a Comment