from rest_framework import serializers from django.contrib.auth.models import User from .models import Driver, Kart, Params, Relay class DriverSerializer(serializers.ModelSerializer): class Meta: model = Driver fields = ('id', 'first_name', 'last_name', 'order', 'ref_time') def update(self, instance, validated_data): instance.first_name = validated_data.get("first_name", instance.first_name) instance.last_name = validated_data.get("last_name", instance.last_name) instance.order = validated_data.get("order", instance.order) instance.ref_time = validated_data.get("ref_time", instance.ref_time) instance.save() return instance def create(self, validated_data): return Driver.objects.create(**validated_data) class KartSerializer(serializers.ModelSerializer): drivers = DriverSerializer(many=True, read_only=True) class Meta: model = Kart fields = ('id', 'name', 'autonomy', 'drivers') def update(self, instance, validated_data): instance.name = validated_data.get("name", instance.name) instance.autonomy = validated_data.get("autonomy", instance.autonomy) instance.comment = validated_data.get("comment", instance.comment) instance.save() return instance def create(self, validated_data): return Kart.objects.create(**validated_data) class RelaySerializer(serializers.ModelSerializer): class Meta: model = Relay fields = ('id', 'relay_start', 'relay_end', 'has_refuel', 'driver_chrono', 'relay_autonomy', 'comment', 'kart_id', 'driver_id') def update(self, instance, validated_data): instance.relay_start = validated_data.get("relay_start", instance.relay_start) instance.relay_end = validated_data.get("relay_end", instance.relay_end) instance.has_refuel = validated_data.get("has_refuel", instance.has_refuel) instance.driver_chrono = validated_data.get("driver_chrono", instance.driver_chrono) instance.relay_autonomy = validated_data.get("relay_autonomy", instance.relay_autonomy) instance.comment = validated_data.get("comment", instance.comment) instance.kart_id = validated_data.get("kart_id", instance.kart_id) instance.driver_id = validated_data.get("driver_id", instance.driver_id) instance.save() return instance def create(self, validated_data): return Relay.objects.create(**validated_data) class ParamSerializer(serializers.ModelSerializer): class Meta: model = Params fields = ('id', 'default_relay', 'autonomy', 'stand_minimum_time') def update(self, instance, validated_data): instance.default_relay = validated_data.get("default_relay", instance.default_relay) instance.autonomy = validated_data.get("autonomy", instance.autonomy) instance.stand_minimum_time = validated_data.get("stand_minimum_time", instance.stand_minimum_time) instance.save() return instance def create(self, validated_data): return Params.objects.create(**validated_data)