2010-04-27 81 views
4

我對此非常有FileField字段的模型:更新forms.FileField對Django表單

class DocumentUpload(models.Model): 
    document_name = models.CharField(max_length=100, blank=True) 
    document_path = models.FileField(upload_to='uploads') 

,當我使用的形式來創建一個新的使用這個模型

class DocumentUploadForm(forms.ModelForm): 
    class Meta: 
     model = DocumentUpload 

形式上傳一切正常。

if request.method == 'POST': 
     form = DocumentUploadForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form.save() 

但是,當我嘗試更新/編輯條目時,它會更新除上傳文檔之外的所有字段。這只是保持原來的上傳相同。

d = get_object_or_404(DocumentUpload, pk=id) 

if request.method == 'POST': 
    form = DocumentUploadForm(data=request.POST, files=request.FILES, instance=d) 
    if form.is_valid(): 
     u = form.save() 

如何在編輯實例時更改上載文件?

感謝

+1

是您的表單模板ENCTYPE = 「的multipart/form-data的」? – Brant 2010-04-27 13:39:17

+0

這是我無法相信我錯過了它的問題。謝謝 – John 2010-04-27 13:55:49

回答

4

由於這是我的想法,我會後它作爲一個答案(只是撫摸我自己的自我和/或等級)...

以下內容添加到您的表單模板:

enctype="multipart/form-data" 

隨時檢查它作爲一個答案......

:)

+1

「mutlipart」中有一個錯字。 – sebpiq 2011-05-23 13:15:23

+0

謝謝,修復.. – Brant 2011-05-23 16:47:11

0

只是需要加入:

enctype="multipart/form-data" 

我的形式。由於布蘭特