Files
WerkoutAPI/exercise/serializers.py
Trey t 68a3f4b2c7 WIP
2023-07-03 12:41:22 -05:00

32 lines
1.1 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):
class Meta:
model = ExerciseMuscle
fields = '__all__'
class ExerciseSerializer(serializers.ModelSerializer):
muscles = serializers.SerializerMethodField()
equipment = serializers.SerializerMethodField()
audio_url = serializers.ReadOnlyField()
video_url = serializers.ReadOnlyField()
nsfw_video_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