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 = 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] }