Newer
Older
"""
Serializers creating JSONs for every Model from .models
"""
from rest_framework import serializers
from .models import Sport, Criterion, Question, CriterionRating
class SportListSerializer(serializers.ModelSerializer):
"""
Serializes all sports.
"""
class Meta:
model = Sport
class QuestionListSerializer(serializers.ModelSerializer):
"""
Serializes all Questions.
"""
class Meta:
model = Question
class CriterionListSerializer(serializers.ModelSerializer):
"""
Serializes Criterions
"""
class Meta:
model = Criterion
class SmallSportListSerializer(serializers.BaseSerializer):
def to_representation(self, sport_instances):
serialized_data = []
for sport, boolean in sport_instances:
serialized_data.append(
{
"pk": sport.pk,
"name": sport.name,
"url": sport.url,
"is_filled": boolean,
}
)
return serialized_data
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
class SingleSportSerializer(serializers.BaseSerializer):
def to_representation(self, sport):
serialized_data = {}
serialized_data["pk"] = sport.pk
serialized_data["name"] = sport.name
serialized_data["url"] = sport.url
criteria = []
for criterion in sport.criteria_ratings.iterator():
criterion_data = {}
criterion_data["pk"] = criterion.pk
criterion_data["name"] = criterion.name
# The iterator iterates over the Criterions connected, and not the criterion connection itself, so we need to get that one again
criterion_data["value"] = CriterionRating.objects.get(
criterion=criterion.pk, sport=sport.pk
).rating
criteria.append(criterion_data)
serialized_data["criteria"] = criteria
return serialized_data
def to_internal_value(self, request):
# Probably do some Testing and Data Verification here?
return request.data