gault-millau/apps/news/transfer_data.py
2019-10-20 19:08:14 +03:00

24 lines
816 B
Python

from transfer.serializers.news import NewsSerializer
from transfer.models import PageTexts
from news.models import NewsType
from django.db.models import Value, IntegerField, F
from pprint import pprint
def transfer_news():
news_type, _ = NewsType.objects.get_or_create(name="News")
queryset = PageTexts.objects.all().annotate(news_type=Value(news_type.id, output_field=IntegerField()))
queryset = queryset.annotate(attachment_file_name=F('page__attachment_file_name'))
queryset = queryset.annotate(template=F('page__template'))
serialized_data = NewsSerializer(data=list(queryset.values()), many=True)
if serialized_data.is_valid():
serialized_data.save()
else:
pprint(f"News serializer errors: {serialized_data.errors}")
data_types = {
"news": [transfer_news]
}