django-bulk-hooks 0.1.90__tar.gz → 0.1.92__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of django-bulk-hooks might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: django-bulk-hooks
3
- Version: 0.1.90
3
+ Version: 0.1.92
4
4
  Summary: Hook-style hooks for Django bulk operations like bulk_create and bulk_update.
5
5
  License: MIT
6
6
  Keywords: django,bulk,hooks
@@ -91,24 +91,27 @@ class HookModelMixin(models.Model):
91
91
  is_create = self.pk is None
92
92
  ctx = HookContext(self.__class__)
93
93
 
94
- # Use a single context manager for all hooks
94
+ # Let Django save first to handle form validation
95
+ super().save(*args, **kwargs)
96
+
97
+ # Then run our hooks with the validated data
95
98
  with patch_foreign_key_behavior():
96
99
  if is_create:
97
100
  # For create operations
101
+ run(self.__class__, VALIDATE_CREATE, [self], ctx=ctx)
98
102
  run(self.__class__, BEFORE_CREATE, [self], ctx=ctx)
99
- super().save(*args, **kwargs)
100
103
  run(self.__class__, AFTER_CREATE, [self], ctx=ctx)
101
104
  else:
102
105
  # For update operations
103
106
  try:
104
107
  old_instance = self.__class__.objects.get(pk=self.pk)
108
+ run(self.__class__, VALIDATE_UPDATE, [self], [old_instance], ctx=ctx)
105
109
  run(self.__class__, BEFORE_UPDATE, [self], [old_instance], ctx=ctx)
106
- super().save(*args, **kwargs)
107
110
  run(self.__class__, AFTER_UPDATE, [self], [old_instance], ctx=ctx)
108
111
  except self.__class__.DoesNotExist:
109
112
  # If the old instance doesn't exist, treat as create
113
+ run(self.__class__, VALIDATE_CREATE, [self], ctx=ctx)
110
114
  run(self.__class__, BEFORE_CREATE, [self], ctx=ctx)
111
- super().save(*args, **kwargs)
112
115
  run(self.__class__, AFTER_CREATE, [self], ctx=ctx)
113
116
 
114
117
  return self
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-bulk-hooks"
3
- version = "0.1.90"
3
+ version = "0.1.92"
4
4
  description = "Hook-style hooks for Django bulk operations like bulk_create and bulk_update."
5
5
  authors = ["Konrad Beck <konrad.beck@merchantcapital.co.za>"]
6
6
  readme = "README.md"