Search code examples
djangodjango-rest-frameworkdjango-viewsdjango-ormdjango-serializer

How to return query in key value like formate, how to add multiple queries to return Response


class Movie(models.Model):
    production_house = models.CharField(max_length=50)
    title = models.CharField(max_length=100)
    genre = models.CharField(max_length=100)
    year = models.IntegerField()
    created_at = models.DateTimeField(auto_now_add=True) # When it was create
    updated_at = models.DateTimeField(auto_now=True) # When i was update
    creator = models.ForeignKey('auth.User', related_name='movies', on_delete=models.CASCADE)


class ProductionHouse(models.Model):
    p_name = models.CharField(max_length=50)
    p_address = models.CharField(max_length=100)
    owner = models.CharField(max_length=50)

i am working on an existing project, all the tables are flat, no foreign key. i have to return query from two tables. see the models, i need to return ProductionHouse as key and all the movies that are prouduced by this ProductionHouse will be value. for more clarity

"ProductionHouse1":{ "title":"title1" "genere":"genere1" all the fields }, { "title":"title2" "genre":"genere3" all the fields }

"ProductionHouse2":{ "title":"title1" "genre":"genere1" all the fields },

or simple "productionHouse1":{ movies queryset1 movies queryset2 movies queryset3 ... }, "productionHouse2":{

movies queryset1 ... }, and so on


Solution

  • class MovieProductionSerializer(serializers.ModelSerializer):
        movies= MovieSerializer(many=True, read_only=True)
        class Meta:
            model= ProductionHouse
            fields=['id','title','production_house', 
                  'created_at','updated_at','year', 'creater','movies'
                   ]