我希望将文件上传到动态分配的目录,具体取决于从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)
答案 0 :(得分:0)
由于您无法传递其他参数,因此无法立即执行此操作。但是,您可以将用户添加到您要保存的实例中,这样您就可以通过执行instance.user.username
甚至instance.username
来获取该用户。
在您的创作代码中,您将拥有以下内容:
doc = Document2(random stuff but no docfile2)
doc.username = userName
doc.docfile2 = theFile
doc.save()