Я пытаюсь использовать ImageField upload_to для упорядоченного сохранения изображения, но не могу понять, возможно ли это или как это сделать. Я пытаюсь использовать эту иерархию папок внутри носителя:
Book-title
Chapter 1
img1
img2
Chapter 2
img1
Модели:
class Book(models.Model):
title = models.CharField(max_length=250, unique=True)
slug = models.SlugField(max_length=250, unique=True)
author = models.ManyToManyField(Author)
chapter = models.ManyToManyField(Chapter, related_name='books')
def image_dir_path(instance, filename):
chapter = instance.slug
return os.path.join(chapter, filename)
class Chapter(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=130, unique=True)
slug = models.SlugField(max_length=150, unique=True, blank=True)
picture = models.ImageField(upload_to=image_dir_path)
created_at = models.DateField(auto_now_add=True)
Я бы хотел что-то подобное , поэтому я могу использовать название книги для построения пути:
def image_dir_path(instance, filename):
book = instance.book.slug
chapter = instance.slug
return os.path.join(book, chapter, filename)
Это не работает, экземпляр относится только к классу, в котором вы вызываете image_dir_path .
Это что-то подобное возможно?