Hi guys am new to django field .I have a task to complete. 

The requirement,
     1) I have 5 models each model should be inner nested with another model
      2) I need to perform all CRUD operations by using the Rest API tool 
I will provide my code here , please help me to short out this issue 
Models.py


class Musician(models.Model):

    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)

    def __unicode__(self):
        return self.first_name


class Album(models.Model):
    artist = models.ForeignKey(Musician, on_delete=models.CASCADE, 
related_name='album_musician', null=True, blank=True)
    name = models.CharField(max_length=100)
    release_date = models.DateField()
    num_stars = models.IntegerField()

class Place(models.Model):
    
alname=models.ForeignKey(Album,on_delete=models.CASCADE,related_name='place_album',null=True,blank=True)
    placename=models.CharField(max_length=50)
    time=models.CharField(max_length=50)

class Use(models.Model):
    
pluse=models.ForeignKey(Place,on_delete=models.CASCADE,related_name='use_place',null=True,blank=True)
    Cameramodel=models.CharField(max_length=50)
    byyear=models.DateField()
class Home(models.Model):
    
Duse=models.ForeignKey(Use,on_delete=models.CASCADE,related_name='Demo_Use',null=True,blank=True)
    Dname=models.CharField(max_length=50)
    Age=models.IntegerField()

Serializers.py

class HomeSerializer(serializers.ModelSerializer):
    class Meta:
        model=Home
        fields=('id','Duse','Dname','Age')
class UseSerializer(serializers.ModelSerializer):
    Demo_Use=HomeSerializer(many=True)
    class Meta:
        model=Use
        fields=('id','pluse','Cameramodel','byyear','Demo_Use')
class PlaceSerializer(serializers.ModelSerializer):
    use_place = UseSerializer(many=True)
    class Meta:
        model=Place
        fields=('id','alname','placename','time','use_place')

class AlbumSerializer(serializers.ModelSerializer):
    place_album=PlaceSerializer(many=True)
    class Meta:
        model = Album
        fields = ('id', 'artist', 'name', 'release_date', 
'num_stars','place_album')


class MusicianSerializer(serializers.ModelSerializer):
    album_musician = AlbumSerializer(many=True)

    class Meta:
        model = Musician
        fields = ('id', 'first_name', 'last_name', 'instrument', 
'album_musician')
        lookup_field=id

    def create(self, validated_data):
        albums_data = validated_data.pop('album_musician')
        musician = Musician.objects.create(**validated_data)
        for album_data in albums_data:
            Album.objects.create(artist=musician, **album_data)
        return musician

    def update(self, instance, validated_data):
        albums_data = validated_data.pop('album_musician')
        albums = (instance.album_musician).all()
        albums = list(albums)
        instance.first_name = validated_data.get('first_name', 
instance.first_name)
        instance.last_name = validated_data.get('last_name', 
instance.last_name)
        instance.instrument = validated_data.get('instrument', 
instance.instrument)
        instance.save()

        for album_data in albums_data:
            album = albums.pop(0)
            print('the value',album)
            album.name = album_data.get('name', album.name)
            album.release_date = album_data.get('release_date', 
album.release_date)
            album.num_stars = album_data.get('num_stars', album.num_stars)
            album.save()
        return instance

views.py 

class MusicianListView(generics.ListCreateAPIView):
    queryset = Musician.objects.all()
    serializer_class = MusicianSerializer


class MusicianView(generics.RetrieveUpdateDestroyAPIView):
    serializer_class = MusicianSerializer
    queryset = Musician.objects.all()


class AlbumListView(generics.ListCreateAPIView):
    queryset = Album.objects.all()
    serializer_class = AlbumSerializer


class AlbumView(generics.RetrieveUpdateDestroyAPIView):
    serializer_class = AlbumSerializer
    queryset = Album.objects.all()

class PlaceListView(generics.ListCreateAPIView):
    queryset = Place.objects.all()
    serializer_class = PlaceSerializer
class  PlaceView(generics.RetrieveUpdateDestroyAPIView):
    serializer_class = PlaceSerializer
    queryset = Place.objects.all()

class UseListView(generics.ListCreateAPIView):
    queryset = Use.objects.all()
    serializer_class = UseSerializer

class  UseView(generics.RetrieveUpdateDestroyAPIView):
    serializer_class = UseSerializer
    queryset = Use.objects.all()

class HomeListView(generics.ListCreateAPIView):
    queryset = Home.objects.all()
    serializer_class = HomeSerializer

class  HomeView(generics.RetrieveUpdateDestroyAPIView):
    serializer_class = UseSerializer
    queryset = Home.objects.all()

-- 
You received this message because you are subscribed to the Google Groups 
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-rest-framework+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-rest-framework/7c65209e-f52b-4378-b5f2-e9fc4cacc47en%40googlegroups.com.

Reply via email to