Files
2024-11-27 13:18:16 +01:00

39 lines
1.3 KiB
Python
Executable File

from rest_framework import serializers
from outbo.apps.photobriefing.models import BriefItem
from outbo.apps.photobriefing.serializers import BriefItemPhotoSerializer
class BaseBriefItemSerializer(serializers.ModelSerializer):
class Meta:
model = BriefItem
class BriefItemSerializer:
class List(BaseBriefItemSerializer):
photos = BriefItemPhotoSerializer.List(many=True)
class Meta(BaseBriefItemSerializer.Meta):
fields = ["id", "category", "title", "description", "photos"]
class Create(BaseBriefItemSerializer):
photos = BriefItemPhotoSerializer.Create(many=True)
class Meta(BaseBriefItemSerializer.Meta):
fields = ["category", "title", "description", "photos"]
def create(self, validated_data):
photos = validated_data.pop("photos", None)
instance = super().create(validated_data)
if photos is not None:
for photo in photos:
photo["item"] = instance
BriefItemPhotoSerializer.Create().create(photo)
return instance
class AfterCreate(BaseBriefItemSerializer):
photos = BriefItemPhotoSerializer.List(many=True)
class Meta(BaseBriefItemSerializer.Meta):
fields = ["id", "category", "title", "description", "photos"]