我使用带有 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)