gpt4 book ai didi

django - 具有FileField的Django模型-动态“upload_to”参数

转载 作者:行者123 更新时间:2023-12-04 00:35:24 29 4
gpt4 key购买 nike

我正在使用带有FileField的模型来处理文件上传。现在,文件可以成功上传了。但是,我还想做一个小的改进,那就是使用用户名为用户创建文件夹。

这是我尝试过的代码

class UserFiles(models.Model):
user = models.OneToOneField(User)
file = models.FileField(upload_to='files/users/user.username/%Y_%m_%d/')


这将给文件夹“ user.username”而不是“ John”(用户名的一个示例)

我也尝试过其他方法,例如 files/users/%user.username/%Y_%m_%d/
,但不会为文件夹提供用户名。不确定语法应如何或是否可行。

您能对此提出一些建议吗?
非常感谢您的帮助和解释。

最佳答案

尝试传递函数而不是字符串:

def generate_filename(self, filename):
url = "files/users/%s/%s" % (self.user.username, filename)
return url

class UserFiles(models.Model):
user = models.OneToOneField(User)
file = models.FileField(upload_to=generate_filename)

关于django - 具有FileField的Django模型-动态“upload_to”参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17539720/

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