首页 > 解决方案 > 我可以在 django 模型中指定一个从某个值派生的上传文件夹吗?

问题描述

我在 Django 中有一个模型,它的字段指定如下:

file = models.FileField(upload_to='data')

我想根据该实例具有的另一个字段的外键指定一个文件夹。这可能吗?例如,我可以使用类似的东西吗

file = models.FileField(upload_to='{}/uploads/'.format(self.category.upper()))

我还没有尝试过任何东西。

标签: djangodjango-models

解决方案


您可以定义一个生成路径名的函数,而不是直接传递名称:

def generate_filename(self, filename):
    name = "%s/uploads/%s" % (self.category.upper(), filename)
    return name

然后您可以将 upload_to 字段更改为:

file = models.FileField(upload_to=generate_filename)

推荐阅读