Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.44 KB | None | 0 0
  1. # MODELS.PY
  2. from django.db import models
  3.  
  4.  
  5. class DataPoint(models.Model):
  6.   # flat model
  7.   label = models.CharField(max_length=50)
  8.   x_coordinate = models.SmallIntegerField()
  9.   y_coordinate = models.SmallIntegerField()
  10.  
  11.  
  12. # ====================================================
  13. class Coordinate(models.Model):
  14.   x = models.SmallIntegerField()
  15.   y = models.SmallIntegerField()
  16.  
  17.  
  18. class DataPoint2(models.Model):
  19.   # nested model
  20.   label = models.CharField(max_length=50)
  21.   coordinates = models.ForeignKey("Coordinate", on_delete=models.CASCADE)
  22.  
  23.  
  24.  
  25.  
  26.  
  27. # SERIALIZERS.PY
  28.  
  29. from rest_framework import serializers
  30.  
  31. from .models import *
  32.  
  33.  
  34. ###### NESTED at the SERIALIZER level
  35.  
  36. class NestedCoordinateSerializer(serializers.Serializer):
  37.     x = serializers.IntegerField(source='x_coordinate')
  38.     y = serializers.IntegerField(source='y_coordinate')
  39.  
  40.  
  41. class DataPointSerializer(serializers.ModelSerializer):
  42.     coordinates = NestedCoordinateSerializer(source='*')
  43.  
  44.     class Meta:
  45.         model = DataPoint
  46.         fields = ['label', 'coordinates']
  47.  
  48.  
  49. ########################################################
  50. ###### NESTED at the MODEL level
  51.  
  52. class CoordSerializer(serializers.ModelSerializer):
  53.   class Meta:
  54.     model = Coordinate
  55.     fields = ["x", "y"]
  56.  
  57.  
  58. class DataPoint2Serializer(serializers.ModelSerializer):
  59.   coordinates = CoordSerializer()
  60.  
  61.   class Meta:
  62.     model = DataPoint2
  63.     fields = ["label", "coordinates"]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement