from pprint import pprint from django.db.models import Q from account.transfer_data import STOP_LIST from transfer.models import Comments from transfer.serializers.comments import CommentSerializer def transfer_comments(): # В queryset исключены объекты по условию в связанные моделях # см. transfer_establishment() и transfer_user() queryset = Comments.objects.exclude( Q(establishment__type='Wineyard') | Q(establishment__location__timezone__isnull=True) | Q(account__confirmed_at__isnull=True) | Q(account__email__in=STOP_LIST) ).filter( account__isnull=False, mark__isnull=False ).only( 'id', 'comment', 'mark', 'locale', 'establishment_id', 'account_id', ) serialized_data = CommentSerializer(data=list(queryset.values()), many=True) if serialized_data.is_valid(): serialized_data.save() else: pprint(serialized_data.errors) data_types = { 'comment': [ transfer_comments ] }