开发者

File upload with Django: Invalid form

开发者 https://www.devze.com 2023-03-21 05:29 出处:网络
First time posting a question. I\'ve basically copied everything I\'ve found on here and on the django documentation site and I can\'t figure out what I\'m doing incorrectly

First time posting a question. I've basically copied everything I've found on here and on the django documentation site and I can't figure out what I'm doing incorrectly

Here is the code from my views.py file

from django import forms

class UploadFileForm(forms.Form):
    title = forms.CharField(max_length=50)
    file  = forms.FileField()

def upload_file(request):   
    form = UploadFileForm(request.POST, request.FILES)
    if form.is_valid():
        response = "Form is valid."              
    else:
        response = "Failed to upload attachment."
    return HttpResponse(response)

And my html file:

 <form name="attachmentForm" action="http://mysite.com/uploadattachments" enctype="multipart/form-data" method="post">
      <p>
    Please specify a file, or a set of files:<br/>
    <input id="attachment" type="file" name="datafile" size="40"/>
      </p>
      <input type="submit" value="Send"/>
    </开发者_开发技巧form>

When I test it out I get "Failed to upload attachment". Is there anything obvious that I'm missing here? I'm a bit new to django as well so I apologize if it's just a dumb error. Thanks in advance!


Not entirely sure on this, but I would guess that since you've named your form fields file and title in the definition of the UploadFileForm class, the name attribute of your form fields in the html has to match that, i.e. the file upload field has to be named "file", and there also has to be a "title" field.

I'd recommend checking out https://docs.djangoproject.com/en/dev/topics/forms/ where there are examples on how to render the form automatically, or semi-automatically. Once you have it working with the automatically rendered form, you can customize it to your needs.

0

精彩评论

暂无评论...
验证码 换一张
取 消