changes in article update api and get image url method

This commit is contained in:
abutalib-kiwi
2023-08-02 11:16:12 +05:30
parent d3564efbb9
commit af121f5a53
2 changed files with 8 additions and 2 deletions

View File

@ -33,7 +33,8 @@ class ArticleCardSerializer(serializers.ModelSerializer):
def create(self, validated_data): def create(self, validated_data):
validated_data['image_url'] = get_image_url(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 return article_card
@ -148,11 +149,13 @@ class ArticleSerializer(serializers.ModelSerializer):
ArticleCard.objects.create(article=instance, **card_data) ArticleCard.objects.create(article=instance, **card_data)
ArticleCard.objects.filter(id__in=prev_card, article=instance).delete() 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 # Update or create survey sections
for survey_data in article_survey: for survey_data in article_survey:
survey_id = survey_data.get('id', None) survey_id = survey_data.get('id', None)
options_data = survey_data.pop('options') options_data = survey_data.pop('options')
if survey_id: if survey_id:
prev_survey.remove(survey_id)
survey = ArticleSurvey.objects.get(id=survey_id, article=instance) survey = ArticleSurvey.objects.get(id=survey_id, article=instance)
survey.question = survey_data.get('question', survey.question) survey.question = survey_data.get('question', survey.question)
survey.save() survey.save()
@ -171,6 +174,7 @@ class ArticleSerializer(serializers.ModelSerializer):
else: else:
option_data = pop_id(option_data) option_data = pop_id(option_data)
SurveyOption.objects.create(survey=survey, **option_data) SurveyOption.objects.create(survey=survey, **option_data)
ArticleSurvey.objects.filter(id__in=prev_survey, article=instance).delete()
return instance return instance

View File

@ -16,7 +16,9 @@ def pop_id(data):
def get_image_url(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') image = data.pop('image')
filename = f"{ARTICLE_CARD_IMAGE_FOLDER}/{image.name}" filename = f"{ARTICLE_CARD_IMAGE_FOLDER}/{image.name}"
# upload image on ali baba # upload image on ali baba