new = 0
skipped = 0
- for confirmation in Confirmation.objects.all():
- if not Submission.objects.filter(email=confirmation.email).exists():
- args = {}
- for attr in ['first_name', 'last_name', 'email', 'contact']:
- args[attr] = getattr(confirmation, attr)
- Submission.create(**args)
- new += 1
- else:
- self.stdout.write('skipping ' + confirmation.email + ': already exists.')
- skipped += 1
+ emails = list(Submission.objects.values_list('email', flat=True))
+ for confirmation in Confirmation.objects.exclude(email__in=emails):
+ args = {}
+ for attr in ['first_name', 'last_name', 'email', 'contact']:
+ args[attr] = getattr(confirmation, attr)
+ Submission.create(**args)
+ new += 1
self.stdout.write('New: ' + str(new) + ', skipped: ' + str(skipped))