- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设有一个拥有 100 万用户的网站,他们都至少有一张个人资料图片(也许更多)。
我不确定,但我认为将所有图像存储在一个文件夹中并不是很明智(就速度而言,因为需要一些时间才能在该文件夹中的一百万个和更多图像之间找到一个图像需要更多是时候在那里找到任何东西了)。
因此,作为一种变体,我们可以将图像存储在不同的文件夹中(即使是几层嵌套文件夹)。
例如:id为1-1000的用户将把他们的图片存储在文件夹1中; ID 为 1001-2000 的用户会将其图像存储在文件夹 2 中,依此类推...
为此,我们需要 ImageField 的 upload_to
参数必须是动态的(取决于用户 ID,或者换句话说 self.id
)。
有什么方法可以使其动态化吗?或者也许有一些更合适的方法来实现这个场景?
提前致谢!!!
最佳答案
您可以将函数定义为 upload_to 参数...在您的情况下:
def upload_to_by_id(instance, filename):
if instance.id:
# you already have an id (updating a model with a new file)
folder = str(self.id/1000 +1)
else:
# maybe you still don't have an id!! this can happen a lot... :/
folder = 'tmp'
return '%s/%s' % (folder, filename)
希望这有帮助!
关于Django ImageField : how to make upload_to parameter dependent on self. ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8535189/
我正在尝试为FileField模型创建动态上载路径。因此,当用户上传文件时,Django将其存储到我的计算机/media/(用户名)/(path_to_a_file)/(文件名)中。 例如。/medi
我知道您可以使用 upload_to 参数传递一个可调用函数来动态更改 Django 模型中的 FileFied/ImageField 等。 由upload_to 调用的函数传递了2 个变量,即未保存
我编写了一个简单的 django 应用程序来测试 ImageField,但我遇到了问题,upload_to 似乎不起作用。下面是代码: 1 from django.db import models
当我的用户创建个人资料时,他们的图像保存得很好,但当他们更新它时,图像不会保存。我也不知道如何提取图片以便他们在更新之前可以看到它。 这是表格: class UpdateProfileForm(for
假设我们有两个模型:A 和 B。模型 A 有一个 upload_to 路径,在其中,我还想在同一路径上保存模型 B 中的字段。这就是我想做的: def random_path(instance, fi
我看过很多关于这个问题的帖子,但并没有真正理解如何解决它。 我有这个模型: class Project(TimeStampedModel): name = models.TextField(m
鉴于以下模型,我尝试在 upload_to 路径中使用模型 ID 字段(一个 UUID),但它被定义为 None,大概是因为它当时还没有生成。 如果我使用未定义为主键的 UUID 字段,它可以正常工作
我正在使用带有FileField的模型来处理文件上传。现在,文件可以成功上传了。但是,我还想做一个小的改进,那就是使用用户名为用户创建文件夹。 这是我尝试过的代码 class UserFiles(mo
我有一个 Attachment 模型,该模型在 Django 1.4.1 应用程序中具有 FileField 。此 FileField 有一个可调用的 upload_to 参数,根据 Django d
假设我有很多这样的模型: class ExampleModel(models.Model): photo = models.ImageField(upload_to='photos/')
我正在为带有 FileField 的 Django 模型编写测试用例。我想更改上传路径以防止测试对系统的其余部分产生副作用。 我已经尝试将可调用传递给 upload_to 并在测试中对其进行修补: #
我有这样一个模型: class MyModel(models.Model): red = models.ForeignKey(Anothermodel) blue = models.I
我在理解和使用 Django 的 ImageField 时遇到问题。 我有一个模型: class BlogContent(models.Model): title = models.CharF
我正在尝试设置我的上传,以便如果用户 joe 上传一个文件,它会转到 MEDIA_ROOT/joe,而不是让每个人的文件都转到 MEDIA_ROOT。问题是我不知道如何在模型中定义它。以下是它目前的样
我正在尝试替换将在我的模型中为某个 ImageField 上传的图像。现在我的模型是这样的: class Image(models.Model): image = models.ImageFi
我的类(class)有 Django ImageField我一直在努力在两种存储该字段的替代方案之间做出决定 upload_to功能。第一种方法非常简单。该函数在模块级别定义(参见 https://s
我正在创建一个图像模型,其他模型将通过通用关系使用它。例如,Newsposts 和 events 将有图像。下面是示例图像模型 class Image(models.Model): descri
为什么 upload_to 的值改变了 photo.name 的值?我试图在运行时创建一个相册目录,并在适当的相册目录中讲述我的图像。我的代码能够创建一个具有适当相册名称的目录并在其中包含正确的照片,
我的部署脚本覆盖了媒体和源目录,这意味着我必须将上传目录移出媒体目录,并在提取上传文件后替换它。 如何指示 django 上传到/uploads/而不是/media/? 到目前为止,我不断收到 dja
我有一个允许我上传文件的模型,但由于某种原因,自定义 upload_to 函数中定义的空格在文件系统(或 s3)中被下划线替换文件名和文件夹路径。 有没有办法强制使用空格? 例如:文件“hello w
我是一名优秀的程序员,十分优秀!