2016-02-12 46 views
1

我想允許用戶在我的django網站上傳文件。我從django文檔的示例命令開始,輸入到views.py中,獨立於表單或模型,並在模板中引用(並對其進行了修改,以便可以一次上傳多個文件):django上傳文件證明比必要的更困難

def Upload(request): 
    for count, x in enumerate(request.FILES.getlist("files")):# allows for multiple iterations/files 
     def process(): 
     with open('/Users/Deirdre/bing/upload/media/file_', + str(count) 'wb+') as destination: 
      for chunk in f.chunks(): 
       destination.write(chunk) 
     process(x) 
    return HttpResponse("File(s) uploaded") 

但是在「with open ... as」服務器不斷返回錯誤「SyntaxError:invalid syntax」或「unexpected indentation」....我知道這些都不是真的,所以有辦法繞過這個難題?爲什麼Django不配置命令?

+0

你爲什麼要在循環中定義一個函數?事實上,似乎沒有任何理由有任何功能;只需將代碼放入循環中即可。 –

回答

-1

您的縮進是錯誤的!正確的縮進在下面給出,必須有4個空格縮進

from django.shortcuts import render 
from django.http import HttpResponse 

def Upload(request): 
    for count, x in enumerate(request.FILES.getlist("files")): 
     def process(f): 
      with open('/Users/Michel/django_1.8/projects/upload/media/file_' + str(count), 'wb+') as destination: 
       for chunk in f.chunks(): 
        destination.write(chunk) 
     process(x) 
    return HttpResponse("File(s) uploaded!") 
+0

這似乎已修復了該錯誤,但現在它已將我恢復到原來的錯誤,服務器告訴我: 使用upload.urls中定義的URLconf,Django嘗試使用這些URL模式,順序如下: ^ admin/ ^ index/ 即使我根據教程 – buzzer12

+0

準確地設置了整個數據庫感謝您的答案btw – buzzer12

+0

接受thne答案,如果它幫助你解決問題!謝謝 – python