【发布时间】:2017-09-22 01:16:53
【问题描述】:
好的,这个标题可能是最模糊的东西,但我想不出什么好东西。让我解释一下我的问题。
为了解释,我将使用书籍作为示例,只是因为这很容易。所以,想象一下我有 2 个这样的模型:
class Book(models.Model):
title = models.CharField(max_length=100)
class BookImage(models.Model):
book = models.ForeignKey(Book)
image = models.ImageField()
is_cover = models.BooleanField()
现在,正如您所见,一本书可以有多个图像。我想将上传的图片重命名为 [book title]-[image-id].jpg (当然也可以是任何图片扩展名)。但是,我希望每本书的 image-id 都是唯一的。如果这是有道理的。
所以如果我有 BookA,我希望图像被称为 BookA-1、BookA-2 和 BookA-3 等。BookB 再次从 1 开始,BookB-1、BookB-2、BookB3 等。
知道我该怎么做吗?我自己一直在考虑,但我想不出一个很好的解决方案。起初我以为我可以计算图像的数量并将其加 1,但如果删除图像就会遇到问题。我还考虑过在单独的模型中跟踪 id,但这听起来过于“复杂”。为了让事情变得“更糟”,我想一次上传多张图片(嗯,图片上传是 Django 管理中的内联),所以它也必须能够使用它......所以,我是想知道这里是否有人有好主意?有没有简单的解决方案?
我也在谷歌上搜索了一下,但要么没有人对此有任何问题,要么我只是(嗯,可能)无法找到正确的搜索词(就像我不能来一样加上正确的标题:P)。
感谢阅读!
【问题讨论】: