我试图建立一个系统,在其中用户上传的文件将被赋予一个基于用户名和文件名的路径。对this question的回答似乎为我指明了正确的方向,但从视图来看,我在实现方面有点麻烦。在
我有一个模型使用这个:class Document(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100, blank=False, null=False)
date = models.DateTimeField(auto_now=True)
path = models.FileField(upload_to= custom_doc_file_path) # path should be /media/users/USERNAME/DOCUMENT_NAME
自定义的“文档”文件路径的定义如下:
^{pr2}$
当从管理视图上传一个文件时,这非常有效,但是我似乎无法从我正在创建的视图中复制它。我的观点是这样的:def create_button(request):
if request.method == 'POST':
document = Document.objects.create(
user = request.user,
name = request.POST['name'],
path = request.POST['uploaded_file']
)
document.save()
但是当我尝试这样做时,路径被保存为文件名。如果我尝试将路径留空,然后将文件保存到该路径,模型根本不会创建路径。另外,我认为该文件应该在request.FILES中,但它显示为一个空dict
本质上,我只想知道当我通过这个模型添加一个新文档时,我需要做些什么来复制管理员的行为。在