serializers.py 1.49 KB
from common.models import PyrosUser, Sequence, Plan, Album
from rest_framework import serializers

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = PyrosUser
        fields = ['url', 'username', 'email',  'institute', "user_level", "motive_of_registration"]
        depth = 1



class SequenceSerializer(serializers.ModelSerializer):
    pyros_user = UserSerializer(read_only=True)
    class Meta:
        model = Sequence
        fields = "__all__"


class AlbumSerializer(serializers.ModelSerializer):
    sequence = SequenceSerializer(read_only=True)
    class Meta:
        model = Album
        fields = "__all__"


class PlanSerializer(serializers.ModelSerializer):
    album = AlbumSerializer(read_only=True)
    class Meta:
        model = Plan
        fields = "__all__"

class SimplePlanSerializer(serializers.ModelSerializer):
    
    class Meta:
        model = Plan
        exclude = ["album"]

class SimpleAlbumSerializer(serializers.ModelSerializer):
    plans = SimplePlanSerializer(read_only=True,many=True)
    class Meta:
        model = Album
        fields = ["name","desc","plans"]
class FullSequenceSerializer(serializers.ModelSerializer):
    pyros_user = UserSerializer(read_only=True)
    # here albums is the relationmodel with many to many realtion so we have to set many to True
    albums = SimpleAlbumSerializer(read_only=True,many=True)

    class Meta:
        model = Sequence
        fields = "__all__"
        extra_fields = ["pyros_user","albums"]