Files
zod-backend/web_admin/serializers.py
2023-07-13 19:51:17 +05:30

56 lines
1.6 KiB
Python

"""
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