Skip to content

Commit 230d218

Browse files
committed
create snapshot primary_key in save() not before, don't break on not mandatory fields
1 parent c18442d commit 230d218

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

django/gsmap/models.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class Meta:
8484

8585
id = models.CharField(
8686
max_length=8, unique=True,
87-
primary_key=True, default=create_slug_hash_6
87+
primary_key=True
8888
)
8989
created = models.DateTimeField(auto_now_add=True)
9090
modified = models.DateTimeField(auto_now=True)
@@ -170,20 +170,24 @@ def create_screenshot_file(self, is_thumbnail=False):
170170

171171
def save(self, *args, **kwargs):
172172
def test_exists(pk):
173-
if self.__class__.objects.filter(pk=pk):
173+
if list(self.__class__.objects.filter(pk=pk)):
174174
new_id = create_slug_hash_6()
175175
test_exists(new_id)
176176
else:
177177
return pk
178178

179179
if self._state.adding:
180+
self.id = create_slug_hash_6()
180181
self.id = test_exists(self.id)
181182

182183
super().save(*args, **kwargs)
183184

184185
def __str__(self):
185-
return f'{self.municipality.fullname}, {self.title}, ' \
186-
f'{self.id} ({self.get_permission_display()})'
186+
if self.municipality:
187+
return f'{self.municipality.fullname}, {self.title}, ' \
188+
f'{self.id} ({self.get_permission_display()})'
189+
else:
190+
return self.title
187191

188192

189193
@receiver(post_save, sender=Snapshot)

0 commit comments

Comments
 (0)