Skip to content

Commit 6a6ceb3

Browse files
committed
Skip operations for objects with no pictures to migrate
Closes #228
1 parent 721cd80 commit 6a6ceb3

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

pictures/migrations.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ def update_pictures(self, from_field: PictureField, to_model: type[models.Model]
5656
new_field_file.update_all(old_field_file)
5757

5858
def from_picture_field(self, from_model: type[models.Model]):
59-
for obj in from_model._default_manager.all().iterator():
59+
for obj in from_model._default_manager.exclude(
60+
Q(**{self.name: ""}) | Q(**{self.name: None})
61+
).iterator():
6062
field_file = getattr(obj, self.name)
6163
field_file.delete_all()
6264

@@ -66,9 +68,13 @@ def to_picture_field(
6668
from_field = from_model._meta.get_field(self.name)
6769
if hasattr(from_field.attr_class, "delete_variations"):
6870
# remove obsolete django-stdimage variations
69-
for obj in from_model._default_manager.all().iterator():
71+
for obj in from_model._default_manager.exclude(
72+
Q(**{self.name: ""}) | Q(**{self.name: None})
73+
).iterator():
7074
field_file = getattr(obj, self.name)
7175
field_file.delete_variations()
72-
for obj in to_model._default_manager.all().iterator():
76+
for obj in to_model._default_manager.exclude(
77+
Q(**{self.name: ""}) | Q(**{self.name: None})
78+
).iterator():
7379
field_file = getattr(obj, self.name)
7480
field_file.save_all()

0 commit comments

Comments
 (0)