26 lines
953 B
Python
26 lines
953 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.filter(page__type="News").annotate(news_type=Value(news_type.id, output_field=IntegerField()),
|
|
playlist=Value(1, 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]
|
|
}
|