Как сохранять данные в поле одной модели данные из другой модели, которая связана через ForeignKey
Есть две модели
def get_upload_to(instance, filename):
return os.path.join('gallery', f'{instance.gallery_id.title}', filename)
def get_upload_to_cover(instance, filename):
return os.path.join('gallery', 'cover'+f'{instance.gallery.title}', filename)
class Gallery(models.Model):
title = models.CharField()
cover = models.ImageField(upload_to=get_upload_to_cover)
class GalleryImage(models.Model):
gallery_id = models.ForeignKey(Gallery, related_name='photos')
photo = models.ImageField(upload_to=get_upload_to)
Нужно чтобы последняя из загруженных картинок в галлерею(альбом) сохранялась в поле cover. Пробовал через подобное.
def create_cover(self, id):
last_image = GalleryImage.objects.get(id=self.id).photos.all()[:1]
self.cover = last_image
return self.cover
def save(self, *args, **kwargs):
self.cover = self.create_cover(self.id)
super(Gallery, self).save(*args, **kwargs)
Но увы не получилось, т.к. скорее всего неправильно сделал функцию create_cover или проблема в save. Пробовал через pk, но тоже не получилось. У кого есть идеи как правильно это реализовать? К слову необязательно именно последнюю картинку, можно любую.