diff --git a/src/pretix/control/forms/vouchers.py b/src/pretix/control/forms/vouchers.py index 83c93889c3..0c7bb2f783 100644 --- a/src/pretix/control/forms/vouchers.py +++ b/src/pretix/control/forms/vouchers.py @@ -388,4 +388,9 @@ class VoucherBulkForm(VoucherForm): del data['codes'] objs.append(obj) Voucher.objects.bulk_create(objs) + objs = [] + for v in event.vouchers.filter(code__in=self.cleaned_data['codes']): + # We need to query them again as bulk_create does not fill in .pk values on databases + # other than PostgreSQL + objs.append(v) return objs diff --git a/src/pretix/control/views/vouchers.py b/src/pretix/control/views/vouchers.py index 5b247f9019..ccd3417d95 100644 --- a/src/pretix/control/views/vouchers.py +++ b/src/pretix/control/views/vouchers.py @@ -320,11 +320,9 @@ class VoucherBulkCreate(EventPermissionRequiredMixin, CreateView): @transaction.atomic def form_valid(self, form): log_entries = [] - form.save(self.request.event) - # We need to query them again as form.save() uses bulk_create which does not fill in .pk values on databases - # other than PostgreSQL + objs = form.save(self.request.event) voucherids = [] - for v in self.request.event.vouchers.filter(code__in=form.cleaned_data['codes']): + for v in objs: log_entries.append( v.log_action('pretix.voucher.added', data=form.cleaned_data, user=self.request.user, save=False) )