python - 创建一个函数来为上传的图像位置指定目录

标签 python python-3.x django django-models

我为我的项目模型创建了一个函数,其中有根据用户名和项目标题上传的图像。

现在我正在尝试向该项目添加更多图像并且图像有一个外键,但现在我不是随机创建将新图像上传到另一个文件夹,而是想将这些图像上传到与之前相同的文件夹先前根据相同的项目确定。

我试图改变之前的函数,但它返回了一个错误> 功能,但我不知道用什么替换它。

下面的函数将更具描述性:

以下是根据用户名和项目标题将图像上传到某个位置的模型和函数:

class Item(models.Model):
    def upload_design_to(self, filename):
        return f'{self.designer}/{self.title}/{filename}'

    designer = models.ForeignKey(
        User, on_delete=models.CASCADE)
    title = models.CharField(max_length=100)
    image = models.ImageField(blank=False, upload_to=upload_design_to)

现在我创建了一个新的图像模型来向该项目添加更多图像并希望将它们上传到同一个文件夹

class Images(models.Model):
    def upload_design_to(filename):
        return f'{Item.designer}/{Item.title}/{filename}'
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    name = models.CharField(max_length=50, blank=True)
    image = models.ImageField(blank=True, upload_to=upload_design_to)

    def __str__(self):
        return self.name

最佳答案

不重复自己的解决方案是调用相关 Itemupload_design_to

class Images(models.Model):
    def upload_design_to(self, filename):
        return self.item.upload_design_to(filename)

    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    name = models.CharField(max_length=50, blank=True)
    image = models.ImageField(blank=False, upload_to=upload_design_to)

关于python - 创建一个函数来为上传的图像位置指定目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63144499/

相关文章:

python - 如何在不锁定的情况下在python中的多个进程之间共享字典

Python3 - 什么时候你需要在类方法中的变量声明前添加 "self._"?

python - Django反序列化错误安装Fixture问题

python - 使用表单字段更新 Django 模型

python - PySide:从插槽返回值

python - 是否有更 pythonic 的方法将 bool 值列表转换为整数?

python - python 上的 MySQL 查询中的转义引号

python - 为什么 OrderedDict 的值不相等?

css - react : Production build looks different from development build

python - 如何对 python Django 对象列表进行排序?