Как сохранять данные в поле одной модели данные из другой модели, которая связана через 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, но тоже не получилось. У кого есть идеи как правильно это реализовать? К слову необязательно именно последнюю картинку, можно любую.

Вернуться на верх