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