fix news transfer

This commit is contained in:
alex 2019-12-17 09:24:17 +03:00
parent 181e9599e4
commit 1c00cc7eae

View File

@ -1,13 +1,12 @@
from rest_framework import serializers from rest_framework import serializers
from account.models import User
from gallery.models import Image from gallery.models import Image
from location.models import Country from location.models import Country
from news.models import News, NewsGallery from news.models import News, NewsGallery
from tag.models import Tag from tag.models import Tag
from transfer.models import PageMetadata from transfer.models import PageMetadata
from utils.legacy_parser import parse_legacy_news_content 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): class NewsSerializer(serializers.Serializer):
@ -37,14 +36,18 @@ class NewsSerializer(serializers.Serializer):
'subtitle': self.get_subtitle(validated_data), 'subtitle': self.get_subtitle(validated_data),
'description': self.get_description(validated_data), 'description': self.get_description(validated_data),
'start': validated_data['created_at'], '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), 'state': self.get_state(validated_data),
'template': self.get_template(validated_data), 'template': self.get_template(validated_data),
'country': self.get_country(validated_data), 'country': self.get_country(validated_data),
'created_by': self.get_account(validated_data), 'created_by': self.get_account(validated_data),
'modified_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) tags = self.get_tags(validated_data)
for tag in tags: for tag in tags:
@ -131,6 +134,10 @@ class NewsSerializer(serializers.Serializer):
content = {data['locale']: data['title']} content = {data['locale']: data['title']}
return content return content
@staticmethod
def get_slugs(data):
return {data['locale']: data['slug']}
@staticmethod @staticmethod
def get_account(data): def get_account(data):
"""Get account""" """Get account"""