from rest_framework import serializers from .models import Crop, Variety, Plan class VarietySerializer(serializers.ModelSerializer): class Meta: model = Variety fields = '__all__' class CropSerializer(serializers.ModelSerializer): varieties = VarietySerializer(many=True, read_only=True) class Meta: model = Crop fields = '__all__' class PlanSerializer(serializers.ModelSerializer): crop_name = serializers.ReadOnlyField(source='crop.name') variety_name = serializers.ReadOnlyField(source='variety.name') field_name = serializers.ReadOnlyField(source='field.name') class Meta: model = Plan fields = '__all__' read_only_fields = ('id', 'created_at', 'updated_at') def create(self, validated_data): return Plan.objects.create(**validated_data) def update(self, instance, validated_data): for attr, value in validated_data.items(): setattr(instance, attr, value) instance.save() return instance