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 
  

-- 
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/71db9df4-27f4-497c-aded-7352c9fc0b50n%40googlegroups.com.
from ExamApi.models import Album,Musician,Place,Use,Home
from rest_framework import serializers#, fields


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

# Create your models here.
from django.db import models

# Create your views here.


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()

from django.shortcuts import render
from django.shortcuts import render
from .models import *
from .serializers import *
from rest_framework import generics



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()








Reply via email to