gpt4 book ai didi

django - Django 中的动态文件路径

转载 作者:行者123 更新时间:2023-11-28 19:34:40 26 4
gpt4 key购买 nike

我正在尝试在 Django 中生成动态文件路径。我想制作一个这样的文件系统:

 -- user_12
--- photo_1
--- photo_2
--- user_ 13
---- photo_1

我发现了一个相关问题:Django Custom image upload field with dynamic path

在这里,他们说我们可以更改 upload_to 路径并导致 https://docs.djangoproject.com/en/stable/topics/files/医生。在文档中,有一个示例:

from django.db import models
from django.core.files.storage import FileSystemStorage

fs = FileSystemStorage(location='/media/photos')

class Car(models.Model):
...
photo = models.ImageField(storage=fs)

但是,这仍然不是动态的,我想将 Car id 赋予图像名称,并且我无法在 Car 定义完成之前分配 id。那么如何创建带有汽车 ID 的路径?

最佳答案

您可以在 upload_to 参数中使用可调用对象,而不是使用自定义存储。查看docs ,并注意那里的警告,即调用该函数时可能尚未设置主键。发生这种情况是因为可能会在将对象保存到数据库之前处理上传,因此可能无法使用 ID。您可能需要考虑在模型上使用另一个字段,例如 slug。例如:

import os
def get_upload_path(instance, filename):
return os.path.join(
"user_%d" % instance.owner.id, "car_%s" % instance.slug, filename)

然后:

photo = models.ImageField(upload_to=get_upload_path)

关于django - Django 中的动态文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com