from rest_framework import serializers from .models import Event, EventParticipation class ParticipationSerializer(serializers.ModelSerializer): event = serializers.PrimaryKeyRelatedField(queryset=Event.objects.all()) user = serializers.CharField(source="get_username", read_only=True) status = serializers.CharField(required=False) class Meta: model = EventParticipation fields = ("event", "user", "status", "comment") def create(self, validated_data): # Remove the get_username source field as it's read-only validated_data.pop("get_username", None) return super().create(validated_data) def update(self, instance, validated_data): instance.status = validated_data.get("status", instance.status) instance.comment = validated_data.get("comment", instance.comment) instance.save() return instance