2015-03-19 2 views
1

Я вижу много похожих вопросов, но не могу найти ответа. Мне нужно просто загрузить или обработать файл с помощью Django FileField. Вот что у меня есть:Форма Django FileField не может пройти проверку

forms.py

class UploadForm(forms.Form): 
    packet_file = forms.FileField() 

base.html

<form action="process" method="post" enctype="multipart/form-data"> 
    {% csrf_token %} 
    {{ form.as_p }} 

views.py

def index(request): 

    form = UploadForm() # An unbound form 
    return render(request, 'base.html', {'form': form}) 

def process(request): 
    if request.method == 'POST': # If the form has been submitted... 
     form = UploadForm(request.POST, request.FILES) # A form bound to the POST data 
     if form.is_valid(): 

Так index() обрабатывает первоначальный рендеринг пустой формы. Когда я его заполняю и доходит до process() всегда возвращается

Это поле обязательно для заполнения.

Рядом с полем формы FileField.

Что здесь не так? Не хватает ли каких-либо общих настроек Django, таких как хранение файлов мультимедиа или так? Это даже необходимо на этом этапе, когда я не могу подтвердить форму?

Большое спасибо TC

ответ

1

OK - это моя собственная глупость, как обычно. У меня есть два разных приложения, каждый из которых имеет свой собственный подкаталог для шаблонов. Я думал, что Django сначала использует тот, что находится в соответствующем каталоге, и когда он не найден, он переходит на уровень проекта.

Но это не работает. Так что я у меня было два шаблона base.html для печати простой формы, но только первые один в настоящее время всегда вызываются и не ENCTYPE = «многослойные/форма-данных»

Так вот оно. Возвращаясь к изучению основных принципов Django ;-)

+0

ahah .. случилось со мной в прошлом ... вот что я сначала посмотрел: если у вас есть enctype = "multipart/form-data": D – brunofitas

Смежные вопросы