【发布时间】:2020-04-10 08:00:11
【问题描述】:
我正在尝试使用 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的类有关。
可能是类似的东西吗?
【问题讨论】:
标签: django python-3.x django-models django-3.0