Django - upload_to参数?

时间:2013-06-24 10:53:49

标签: python django

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

models.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)

views.py

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

1 个答案:

答案 0 :(得分:0)

由于您无法传递其他参数,因此无法立即执行此操作。但是,您可以将用户添加到您要保存的实例中,这样您就可以通过执行instance.user.username甚至instance.username来获取该用户。

在您的创作代码中,您将拥有以下内容:

doc = Document2(random stuff but no docfile2)
doc.username = userName
doc.docfile2 = theFile
doc.save()