我希望单个用户能够将其文件上传到一个文件夹中(因此每个用户都有自己的根文件夹,他们可以在其中上传自己的文件),但是我不确定实现此目标的最佳方法。
我最初计划将用户电子邮件用作他们的文件夹名称,他们所有的上载都将保存在此文件夹中。但是,据我所知,检索此信息的唯一方法是通过请求函数,而且我无法设法将请求的实例获取到models.py文件中,因此无法将其添加到我的“ upload_to”目录中。
任何其他关于如何分离用户文件或如何在模型文件中获取请求实例的想法,将不胜感激!
这是我当前的模型:
def user_directory_path(instance, filename):
return 'user_{0}/{1}'.format(instance.user.id, filename)
class UploadModel(models.Model):
user = models.OneToOneField(User)
file = models.FileField(upload_to=user_directory_path)
Run Code Online (Sandbox Code Playgroud)
和它相关的错误:
Exception Value: UploadModel has no user.
Run Code Online (Sandbox Code Playgroud)