【发布时间】:2014-01-10 11:56:42
【问题描述】:
我对 django 有点陌生。我试图在上传中选择文件后将文件发送到另一台服务器,但是form.is_valid() 总是返回 false 不会让我输入if
views.py-
def sent(request):
if request.method == 'POST':
form = SendFileForm(request.POST, request.FILES)
print "form is made"
print form.errors
if form.is_valid():
print "form is valid"
new_song = Song(songfile= request.FILES['songfile'])
new_song.save()
print "new song is made and saved"
l = List()
#cd = form.cleaned_data
#SENDS THE FILE TO SERVER GIVEN PATH
l.all_files(new_song.songfile.path)
return HttpResponseRedirect(reverse('get_files.views.sent'))
else:
print "form is not valid"
else:
form = SendFileForm()
songs = Song.objects.all()
return render_to_response('sent.html', {'songs': songs,'form': form}, context_instance=RequestContext(request))
sent.html模板-
{% if form.errors %}
<p style="color: red;">
Please correct the error{{ form.errors|pluralize }} below.
</p>
{% endif %}
<form action={% url "sent" %} method="post" enctype="multipart/form-data">
{% csrf_token %}
<p>{{ form.non_field_errors }}</p>
<p>{{ form.songfile.label_tag }} {{ form.songfile.help_text }}</p>
<p>
<!--{{ form.songfile.errors }}-->
{{ form.songfile }}
</p>
<p><input type="submit" value="Upload" /></p>
</form>
forms.py-
class SendFileForm(forms.Form):
path = forms.CharField()
songfile = forms.FileField(label='Select a music file',help_text='max. 4 megabytes')
我搜索了很多论坛都无法解决问题。 提前谢谢!
【问题讨论】:
-
您可以添加您的
forms.py文件内容吗? -
您的表单类应使用
CamelCase命名,例如SendFileForm. -
是的,我会添加我的
forms.py -
它现在应该匹配表单命名约定。但是对于为什么表单没有被验证有任何提示吗?
标签: html django django-forms django-templates django-views