from rest_framework import serializers from webapp.models import * class SignupFormSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = SignupForm fields = ('id', 'start', 'end', 'questions') class EventSerializer(serializers.HyperlinkedModelSerializer): signupForm = SignupFormSerializer(many=True, read_only=True, required=False) signup_id = serializers.PrimaryKeyRelatedField( many=True, source="signupForm", queryset=SignupForm.objects.all()) class Meta: model = Event fields = ('id', 'tags', 'visible', 'title', 'description', 'content', 'start_time', 'end_time', 'signup_id', 'signupForm') depth = 1 def create(self, validated_data): signupForms = validated_data.pop('signupForm') event = Event.objects.create(**validated_data) for signupForm in signupForms: event.signupForm.add(signupForm) event.save() return event class SignupSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Signup fields = ('id', 'signupForm', 'answer') extra_kwargs = { 'url': { 'view_name': 'signup-detail', } }