form.is_valid()总是失败

时间:2018-03-17 17:48:37

标签: python html django django-forms

我正在尝试创建一个非常基本的表单,允许用户上传txt文件。函数form.is_valid()总是失败,我不知道该怎么做。这是我的代码:(非常类似于django文档中的示例):

views.py

from django import forms
from django.http import HttpResponse
from django.shortcuts import render


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


def handle_uploaded_file(f):
    with open('some/file/name.txt', 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)


def home(request):
    if request.method == 'POST':
        print(1)
        form = UploadFileForm(request.POST, request.FILES)
        print(form.errors)
        print(2)
        if form.is_valid():
            print(3)
            handle_uploaded_file(request.FILES['file'])
            return HttpResponse('thanks')
    else:
        form = UploadFileForm()
    return render(request, 'home.html', {'form': form})

home.html的

{% extends "base.html" %}
{% block content %}

<div>
    <div class="'chooseFile'">
        <h3>Choose file to attach</h3>
    </div>
    <form action="" method="POST" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form.file }}

        <button type="submit" class="save btn btn-default" value="Submit"></button>
    </form>
</div>
{% endblock %}

url.py

from django.urls import path
from django.contrib import admin
from django.conf.urls import url
from adoptions import views

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^$', views.home, name='home'),
    url(r'^$', views.home, name='/success/url/'),
]

0 个答案:

没有答案