""" web_admin serializers file """ from rest_framework import serializers from web_admin.models import Article, ArticleCard, SurveyOption, ArticleSurvey class ArticleCardSerializer(serializers.ModelSerializer): class Meta: model = ArticleCard fields = ('title', 'description') class SurveyOptionSerializer(serializers.ModelSerializer): class Meta: model = SurveyOption fields = ('option', 'is_answer') class ArticleSurveySerializer(serializers.ModelSerializer): options = SurveyOptionSerializer(many=True) class Meta: model = ArticleSurvey fields = ('question', 'points', 'options') class ArticleSerializer(serializers.ModelSerializer): article_cards = ArticleCardSerializer(many=True) article_survey = ArticleSurveySerializer(many=True) class Meta: """ meta class """ model = Article fields = ('title', 'description', 'article_cards', 'article_survey') def create(self, validated_data): article_cards = validated_data.pop('article_cards') article_survey = validated_data.pop('article_survey') article = Article.objects.create(**validated_data) for card in article_cards: ArticleCard.objects.create(article=article, **card) for survey in article_survey: options = survey.pop('options') survey_obj = ArticleSurvey.objects.create(article=article, **survey) for option in options: SurveyOption.objects.create(survey=survey_obj, **option) return article