mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 16:44:54 +00:00
web_admin module added, api for article created
This commit is contained in:
55
web_admin/serializers.py
Normal file
55
web_admin/serializers.py
Normal file
@ -0,0 +1,55 @@
|
||||
"""
|
||||
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
|
||||
Reference in New Issue
Block a user