from rest_framework import serializers from .models import ArticleCategory, ArticleCollection from .serializers_admin import AbsoluteImageField class DovodiArticleCategorySerializer(serializers.ModelSerializer): slug = serializers.CharField(required=False, allow_blank=True) class Meta: model = ArticleCategory fields = ["id", "title", "slug", "status", "order"] class DovodiArticleCollectionSerializer(serializers.ModelSerializer): slug = serializers.CharField(required=False, allow_blank=True) thumbnail = AbsoluteImageField(required=False, allow_null=True) remove_thumbnail = serializers.BooleanField(write_only=True, required=False, default=False) class Meta: model = ArticleCollection fields = [ "id", "title", "slug", "summary", "display_position", "status", "order", "pin_top", "thumbnail", "remove_thumbnail", ] def create(self, validated_data): validated_data.pop("remove_thumbnail", False) return super().create(validated_data) def update(self, instance, validated_data): remove_thumbnail = validated_data.pop("remove_thumbnail", False) if remove_thumbnail and instance.thumbnail: instance.thumbnail.delete(save=False) instance.thumbnail = None return super().update(instance, validated_data)