Add cache and optimize code
This commit is contained in:
parent
2390968029
commit
473df39cbe
6 changed files with 114 additions and 54 deletions
|
@ -1,6 +1,7 @@
|
|||
import os
|
||||
from datetime import datetime
|
||||
|
||||
from django.core.cache import cache
|
||||
from django.db import models
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
|
@ -47,7 +48,6 @@ class Photo(models.Model):
|
|||
self.slug = os.path.basename(self.photo.name)
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
|
||||
def add_like(self):
|
||||
self.likes += 1
|
||||
self.save(update_fields=['likes'])
|
||||
|
@ -58,7 +58,7 @@ class Photo(models.Model):
|
|||
|
||||
def get_next(self):
|
||||
return self.__class__.objects.filter(taken_at__gt=self.taken_at, album=self.album).order_by('taken_at').first()
|
||||
|
||||
|
||||
def get_prev(self):
|
||||
return self.__class__.objects.filter(taken_at__lt=self.taken_at, album=self.album).order_by('-taken_at').first()
|
||||
|
||||
|
@ -79,13 +79,19 @@ class Photo(models.Model):
|
|||
|
||||
|
||||
|
||||
def create_photo(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
""" Add exif metadata """
|
||||
@receiver(post_save, sender=Photo)
|
||||
def handle_photo_creation(sender, instance, created, **kwargs):
|
||||
if not created:
|
||||
return
|
||||
|
||||
# Lisää EXIF metadata
|
||||
if instance.photo and instance.photo.path:
|
||||
exif = Exif(instance.photo.path)
|
||||
instance.exif = exif.data
|
||||
""" Update taken datetime """
|
||||
instance.taken_at = exif.datetimeoriginal('Europe/Helsinki')
|
||||
instance.save()
|
||||
instance.save(update_fields=['exif', 'taken_at'])
|
||||
|
||||
post_save.connect(create_photo, sender=Photo)
|
||||
# Aseta cover, jos albumilla ei ole vielä sellaista
|
||||
if instance.album and not instance.album.cover:
|
||||
instance.album.cover = instance
|
||||
instance.album.save(update_fields=['cover'])
|
Loading…
Add table
Add a link
Reference in a new issue