我正在尝试创建一个非常基本的表单,允许用户上传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/'),
]