diff --git a/apps/transfer/serializers/news.py b/apps/transfer/serializers/news.py index 4ef03184..9205201d 100644 --- a/apps/transfer/serializers/news.py +++ b/apps/transfer/serializers/news.py @@ -1,13 +1,12 @@ from rest_framework import serializers +from account.models import User from gallery.models import Image from location.models import Country from news.models import News, NewsGallery from tag.models import Tag from transfer.models import PageMetadata from utils.legacy_parser import parse_legacy_news_content -from utils.slug_generator import generate_unique_slug -from account.models import User class NewsSerializer(serializers.Serializer): @@ -37,14 +36,18 @@ class NewsSerializer(serializers.Serializer): 'subtitle': self.get_subtitle(validated_data), 'description': self.get_description(validated_data), 'start': validated_data['created_at'], - 'slug': generate_unique_slug(News, validated_data['slug']), + 'slugs': self.get_slugs(validated_data), 'state': self.get_state(validated_data), 'template': self.get_template(validated_data), 'country': self.get_country(validated_data), 'created_by': self.get_account(validated_data), 'modified_by': self.get_account(validated_data), } - obj = News.objects.create(**payload) + + obj, _ = News.objects.update_or_create( + old_id=validated_data['id'], + defaults=payload, + ) tags = self.get_tags(validated_data) for tag in tags: @@ -131,6 +134,10 @@ class NewsSerializer(serializers.Serializer): content = {data['locale']: data['title']} return content + @staticmethod + def get_slugs(data): + return {data['locale']: data['slug']} + @staticmethod def get_account(data): """Get account"""