gault-millau/apps/news/transfer_data.py
2019-10-24 14:01:38 +03:00

26 lines
739 B
Python

from django.db.models import Value, IntegerField, F
from news.models import NewsType
from transfer.models import PageTexts
from transfer.serializers.news import NewsSerializer
def transfer_news():
news_type, _ = NewsType.objects.get_or_create(name="News")
queryset = PageTexts.objects.filter(page__type="News").annotate(
news_type=Value(news_type.id, output_field=IntegerField()),
)
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:
print(f"News serializer errors: {serialized_data.errors}")
data_types = {
"news": [transfer_news]
}