mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-17 02:45:08 +00:00
56 lines
1.6 KiB
Python
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
|