0

我希望根据从 MySQL 数据库中检索到的用户将文件上传到动态分配的目录。根据文档,该uploads_to函数只接受两个参数,所以我假设我不能注入另一个变量来完成返回的路径字符串?下面的代码片段:

模型.py

def item_uploads_to(instance, filename, userName):
    return '/home/' + userName would go here + '/path/to/uploads/' + filename

class Document2(models.Model):
    docfile2 = models.FileField(upload_to=item_uploads_to)

视图.py

 userName = 'python' # this is a test value, working DB query code goes here
 item_uploads_to(instance, filename, userName) 
4

1 回答 1

1

你不能马上做,因为你不能传递额外的参数。但是您可以将用户添加到您正在保存的实例中,这样您就可以通过 doinstance.user.username甚至instance.username.

在您的创建代码中,您将拥有如下内容:

doc = Document2(random stuff but no docfile2)
doc.username = userName
doc.docfile2 = theFile
doc.save()
于 2013-06-24T10:59:13.793 回答