form.is_valid()返回false(django)

 mobiledu2502903113 发布于 2023-02-08 17:30

我对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 %}
    

Please correct the error{{ form.errors|pluralize }} below.

{% endif %}
{% csrf_token %}

{{ form.non_field_errors }}

{{ form.songfile.label_tag }} {{ form.songfile.help_text }}

{{ form.songfile }}

forms.py-

class SendFileForm(forms.Form):
    path = forms.CharField()
    songfile = forms.FileField(label='Select a music file',help_text='max. 4 megabytes')

我搜索了很多论坛,但无法解决问题.先感谢您!

1 个回答
  • 默认情况下(required=True)需要表单中的每个字段.未在必填字段中提供信息的表格无效.您可以path在模板中向表单添加字段,并且必须填写该字段,或者您可以创建不需要的路径:

    class SendFileForm(forms.Form):
        path = forms.CharField(required=False)
        ...
    

    要么

    <form action={% url "sent" %} method="post" enctype="multipart/form-data">
    ...
                {{ form.songfile }}
                {{ form.path }}
    ...
    </form>
    

    2023-02-08 17:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有