mybuddy/api/serializers.py

90 lines
2.4 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
from rest_framework import serializers
from django.contrib.auth.models import User
2017-11-10 02:15:09 +00:00
from core import models
2017-08-13 14:48:16 +00:00
class CoreModelSerializer(serializers.HyperlinkedModelSerializer):
"""
Provide the child link (used by most core models) and run model clean()
methods during POST operations.
"""
child = serializers.PrimaryKeyRelatedField(
queryset=models.Child.objects.all())
def validate(self, attrs):
instance = self.Meta.model(**attrs)
instance.clean()
return attrs
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'username')
2017-08-16 12:49:58 +00:00
class ChildSerializer(serializers.HyperlinkedModelSerializer):
2017-08-13 14:48:16 +00:00
class Meta:
2017-11-10 02:15:09 +00:00
model = models.Child
fields = ('id', 'first_name', 'last_name', 'birth_date', 'slug',
'picture')
2017-08-18 12:08:23 +00:00
lookup_field = 'slug'
2017-08-13 14:48:16 +00:00
class DiaperChangeSerializer(CoreModelSerializer):
2017-08-13 19:51:25 +00:00
class Meta:
2017-11-10 02:15:09 +00:00
model = models.DiaperChange
fields = ('id', 'child', 'time', 'wet', 'solid', 'color', 'amount')
2017-08-13 19:51:25 +00:00
class FeedingSerializer(CoreModelSerializer):
2017-08-13 15:59:14 +00:00
class Meta:
2017-11-10 02:15:09 +00:00
model = models.Feeding
fields = ('id', 'child', 'start', 'end', 'duration', 'type', 'method',
'amount')
2017-08-13 15:59:14 +00:00
class NoteSerializer(CoreModelSerializer):
2017-08-13 20:48:16 +00:00
class Meta:
2017-11-10 02:15:09 +00:00
model = models.Note
fields = ('id', 'child', 'note', 'time')
2017-08-13 20:48:16 +00:00
class SleepSerializer(CoreModelSerializer):
2017-08-13 14:48:16 +00:00
class Meta:
2017-11-10 02:15:09 +00:00
model = models.Sleep
fields = ('id', 'child', 'start', 'end', 'duration', 'nap')
2017-08-13 15:59:14 +00:00
2019-05-17 05:13:14 +00:00
class TemperatureSerializer(CoreModelSerializer):
class Meta:
model = models.Temperature
fields = ('id', 'child', 'temperature', 'time')
class TimerSerializer(CoreModelSerializer):
child = serializers.PrimaryKeyRelatedField(
allow_null=True, allow_empty=True, queryset=models.Child.objects.all(),
required=False)
user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())
class Meta:
2017-11-10 02:15:09 +00:00
model = models.Timer
fields = ('id', 'child', 'name', 'start', 'end', 'duration', 'active',
'user')
class TummyTimeSerializer(CoreModelSerializer):
2017-08-13 19:05:44 +00:00
class Meta:
2017-11-10 02:15:09 +00:00
model = models.TummyTime
fields = ('id', 'child', 'start', 'end', 'duration', 'milestone')
2017-11-10 02:15:09 +00:00
class WeightSerializer(CoreModelSerializer):
2017-11-10 02:15:09 +00:00
class Meta:
model = models.Weight
fields = ('id', 'child', 'weight', 'date')