25 lines
899 B
Python
25 lines
899 B
Python
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
|