Django - Angular 4 Serializer for inserting Parent and child Models using single JSON post

40 views
Skip to first unread message

Nathan Sivathanu

unread,
Apr 9, 2018, 8:24:33 AM4/9/18
to Django users

My requirement - I have two models TravelReq and TravelReqDetails as below

class TravelReq(models.Model): 
    empid= models.CharField(max_length=7) 
    startdate= models.DateField()
    enddate= models.DateField()
    remarks= models.CharField(max_length=30)
    missionname= models.CharField(max_length=30)
    def __str__(self):
        return str(self.id)

class TravelReqDetails(models.Model):
     travelReqID = models.ForeignKey(TravelReq ,related_name  = 'req_details' , on_delete=models.CASCADE );
     travelDate= models.DateField()
     lfrom = models.CharField(max_length=30)
     to= models.CharField(max_length=30)
     remarks = models.CharField(max_length=30)

def __str__(self):
    return str(self.id)

My serailizer

from  .models import TravelReq ,TravelReqDetails
from rest_framework import serializers

class TravelReqSerializer(serializers.ModelSerializer):
    class Meta:
        model = TravelReq
    fields = ('empid' ,     'startdate' ,   'enddate' , 'remarks' , 'missionname' ,'req_details')code here

My view

from .models import TravelReq 
from rest_framework import viewsets
from .serializers import TravelReqSerializer 


class TravelReqViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """
    queryset = TravelReq.objects.all() 
    serializer_class = TravelReqSerializer

From Angular I will be receiving below JSON as POST / PUT request . What is the best way to insert the master(TravelReq) and child records (TravelReqDetails) from a single serializer. please advice. If this is not the best approach ,please suggest a better / standard approach

[
    {
        "empid": "32432",
        "startdate": "2017-11-16",
        "enddate": "2018-03-17",
        "remarks": "asd",
        "missionname": "asd",
        "req_details": [
            {
                "id": 1,
                "travelDate": "2017-07-18",
                "lfrom": "indiaemarks",
                "to": "pakistan",
                "remarks": "r",
                "travelReqID": <<need to  get from parent travel request>> 
            },
            {
                "id": 2,
                "travelDate": "2018-04-02",
                "lfrom": "pakistan",
                "to": "india",
                "remarks": "rerutn remarks",
                "travelReqID":  <<need to  get from parent travel request>>
            }
        ]
    },

Serge Kalimunda

unread,
Apr 26, 2018, 7:26:27 PM4/26/18
to django...@googlegroups.com
Hey dear, how to get out of the group conference? plz help

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/816ab639-a82d-451a-9868-58ef057205b8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages