From fed2aae7f18c554e4e838a1af307bebb9e88db11 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Wed, 23 Oct 2019 09:30:36 +0300 Subject: [PATCH] Fix settings/base Add transfer_data to location --- apps/location/transfer_data.py | 25 +++++++++++++++++++++++++ project/settings/base.py | 3 +-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 apps/location/transfer_data.py diff --git a/apps/location/transfer_data.py b/apps/location/transfer_data.py new file mode 100644 index 00000000..deee2fe5 --- /dev/null +++ b/apps/location/transfer_data.py @@ -0,0 +1,25 @@ +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] +} diff --git a/project/settings/base.py b/project/settings/base.py index bdfeb73f..69f601d7 100644 --- a/project/settings/base.py +++ b/project/settings/base.py @@ -74,8 +74,7 @@ PROJECT_APPS = [ 'favorites.apps.FavoritesConfig', 'rating.apps.RatingConfig', 'transfer.apps.TransferConfig', - 'tag.apps.TagConfig', -] + 'tag.apps.TagConfig' ]