Загрузка файла с помощью Django: Неверная форма - PullRequest
2 голосов
/ 19 июля 2011

Первый раз отправляю вопрос.Я в основном скопировал все, что нашел здесь и на сайте документации django, и не могу понять, что я делаю неправильно

Вот код из моего файла views.py

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)

И мой HTML-файл:

 <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>

Когда я тестирую его, я получаю «Не удалось загрузить вложение».Есть ли что-то очевидное, что я здесь скучаю?Я немного новичок в django, поэтому прошу прощения, если это просто глупая ошибка.Заранее спасибо!

1 Ответ

1 голос
/ 20 июля 2011

Не совсем уверен в этом, но я предполагаю, что, поскольку вы назвали поля формы file и title в определении класса UploadFileForm, атрибут name полей формы в html имеетчтобы соответствовать этому, то есть поле загрузки файла должно называться «file», а также должно быть поле «title».

Я бы рекомендовал проверить https://docs.djangoproject.com/en/dev/topics/forms/ там, где естьпримеры того, как визуализировать форму автоматически или полуавтоматически.Как только он будет работать с автоматически отображаемой формой, вы сможете настроить его в соответствии со своими потребностями.

...