我有一个类似于以下的模型类 -
class Document(models.Model):
docfile = models.FileField(upload_to='documents/%Y/%M/%D')
一切正常,文件根据目录结构成功上传。
现在我不想上传这种格式的文件,只想上传一个文件夹中的所有文件,所以我改变了逻辑..
class Document(models.Model):
docfile = models.FileField(upload_to='documents')
现在它没有上传文件并抛出错误。也许我需要运行一些命令,但我不知道是什么??
请提出一些建议
编辑1:
好的..我发现实际问题出在其他地方。
我有这样的看法 - (请忽略错误的间距,但在实际代码中很好)
def lists(request):
// Problematic Code Start
path = settings.MEDIA_URL + 'upload/location.txt'
f = open(path, 'w')
myfile = File(f)
myfile.write('Hello World')
myfile.closed
f.closed
// Problematic Code ends
# Handle file upload
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
filename = Document(docfile = request.FILES['docfile'])
filename.save()
# Redirect to the document list after POST
return HttpResponseRedirect(reverse('sdm:lists'))
#return render_to_response(reverse('sdm:lists'))
else:
form = DocumentForm() # A empty, unbound form
# Load documents for the list page
documents = Document.objects.all()
# Render list page with the documents and the form
return render_to_response(
'sdm/lists.html',
{'documents': documents, 'form': form},
context_instance=RequestContext(request)
)
当我删除有问题的代码时,一切正常。(忽略这个奇怪代码的目的,实际兴趣更大)
MEDIA_URL=/media/
这是错误:
IOError at /sdm/lists
[Errno 2] No such file or directory: '/media/upload/location.txt'
尽管文件存在并且所有权限都www-data:www-data
具有755