Files
WerkoutAPI/exercise/serializers.py
2024-06-23 22:51:58 -05:00

37 lines
1.2 KiB
Python

from rest_framework import serializers
from .models import *
from muscle.models import ExerciseMuscle
from equipment.models import WorkoutEquipment
from muscle.serializers import ExerciseMuscleSerializer
from equipment.serializers import WorkoutEquipmentSerializer
class ExerciseMuscleSerializer(serializers.ModelSerializer):
name = serializers.SerializerMethodField()
class Meta:
model = ExerciseMuscle
fields = '__all__'
def get_name(self, obj):
return obj.muscle.name
class ExerciseSerializer(serializers.ModelSerializer):
muscles = serializers.SerializerMethodField()
equipment = serializers.SerializerMethodField()
audio_url = serializers.ReadOnlyField()
video_url = serializers.ReadOnlyField()
transition_url = serializers.ReadOnlyField()
class Meta:
model = Exercise
fields = '__all__'
def get_muscles(self, obj):
objs = ExerciseMuscle.objects.filter(exercise=obj)
data = ExerciseMuscleSerializer(objs, many=True).data
return data
def get_equipment(self, obj):
objs = WorkoutEquipment.objects.filter(exercise=obj)
data = WorkoutEquipmentSerializer(objs, many=True).data
return data