2015-10-23 61 views
0

我想上傳django中的文件。FileUpload不能在Django中工作

它允許我在表單中添加文件,並提交沒有錯誤,但沒有被存儲。我使用Django的脆皮形式

models.py

class Upload(models.Model): 
    upload = models.FileField(upload_to='.') 

views.py

class UploadsView(UpdateView): 
    form_class = UploadForm 
    template_name = 'upload.html' 
    model = Upload 

forms.py

class UploadForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(UploadForm, self).__init__(*args, **kwargs) 

    class Meta: 
     model = Upload 
     fields = ('upload',) 

settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, '..', 'media') 

MEDIA_URL = '/media/' 

form.html

<form method="POST" action="">{% csrf_token %} 
     {{ form|crispy }} 
      <input class="btn btn-primary" type="submit" value="Submit" /> 
      <a href="/home"><button type="button" class="btn btn-danger">Cancel</button></a> 
</form> 
+0

嘗試指定確切的媒體根目錄/ home/User/project/static/media –

+0

您可以將您的模板html發佈到表單正在呈現的位置嗎? – solarissmoke

+0

我剛剛使用了我的表單中的{{form | crispy}}'標記 – user3972986

回答

1

你需要改變你的表單標籤:

<form method="POST" action="" enctype="multipart/form-data"> 

documentation

注意request.FILES將只包含數據,如果請求方法爲POST而發佈該請求的<form>具有屬性enctype="multipart/form-data"。否則,request.FILES將爲空。

+0

完美謝謝。不知道我是如何從文檔中錯過的 – user3972986

+0

我可以提供幫助的唯一原因是,我從字面上解決了同一個項目的問題。 – solarissmoke