From af121f5a539c628ae59a70962a2764c4d10bf84e Mon Sep 17 00:00:00 2001 From: abutalib-kiwi Date: Wed, 2 Aug 2023 11:16:12 +0530 Subject: [PATCH] changes in article update api and get image url method --- web_admin/serializers/article_serializer.py | 6 +++++- web_admin/utils.py | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/web_admin/serializers/article_serializer.py b/web_admin/serializers/article_serializer.py index 6945880..f3b5d06 100644 --- a/web_admin/serializers/article_serializer.py +++ b/web_admin/serializers/article_serializer.py @@ -33,7 +33,8 @@ class ArticleCardSerializer(serializers.ModelSerializer): def create(self, validated_data): validated_data['image_url'] = get_image_url(validated_data) - article_card = ArticleCard.objects.create(article_id='1', **validated_data) + article = Article.objects.all().first() + article_card = ArticleCard.objects.create(article=article, **validated_data) return article_card @@ -148,11 +149,13 @@ class ArticleSerializer(serializers.ModelSerializer): ArticleCard.objects.create(article=instance, **card_data) ArticleCard.objects.filter(id__in=prev_card, article=instance).delete() + prev_survey = list(ArticleSurvey.objects.filter(article=instance).values_list('id', flat=True)) # Update or create survey sections for survey_data in article_survey: survey_id = survey_data.get('id', None) options_data = survey_data.pop('options') if survey_id: + prev_survey.remove(survey_id) survey = ArticleSurvey.objects.get(id=survey_id, article=instance) survey.question = survey_data.get('question', survey.question) survey.save() @@ -171,6 +174,7 @@ class ArticleSerializer(serializers.ModelSerializer): else: option_data = pop_id(option_data) SurveyOption.objects.create(survey=survey, **option_data) + ArticleSurvey.objects.filter(id__in=prev_survey, article=instance).delete() return instance diff --git a/web_admin/utils.py b/web_admin/utils.py index aea72e8..6ecd5e3 100644 --- a/web_admin/utils.py +++ b/web_admin/utils.py @@ -16,7 +16,9 @@ def pop_id(data): def get_image_url(data): - if 'image' in data and data['image'] is not None: + if 'image_url' in data: + return data['image_url'] + elif 'image' in data and data['image'] is not None: image = data.pop('image') filename = f"{ARTICLE_CARD_IMAGE_FOLDER}/{image.name}" # upload image on ali baba