Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 点击按钮而不上传文件_Html_Django_Forms - Fatal编程技术网

Html 点击按钮而不上传文件

Html 点击按钮而不上传文件,html,django,forms,Html,Django,Forms,我有一个html表单,用户可以上传文件,但如果用户直接点击提交按钮而不上传任何文件,django会给出一个错误。我怎样才能控制这个问题 upload.html forms.py 我给出了这样一个错误: /upload/senet处的值错误 view operations.views.SenetList未返回HttpResponse对象。它没有返回任何结果 若方法为post且表单无效,则隐式返回None。这会导致错误。对带有无效表单的方法帖子执行响应此模板是在呈现之前还是呈现之后?我无法准确理解您

我有一个html表单,用户可以上传文件,但如果用户直接点击提交按钮而不上传任何文件,django会给出一个错误。我怎样才能控制这个问题

upload.html forms.py 我给出了这样一个错误:

/upload/senet处的值错误

view operations.views.SenetList未返回HttpResponse对象。它没有返回任何结果


若方法为post且表单无效,则隐式返回None。这会导致错误。对带有无效表单的方法帖子执行响应

此模板是在呈现之前还是呈现之后?我无法准确理解您的问题。你能解释一下吗@MOHA369呈现前:
{{form}
,呈现后:
{{…}
呈现前我会说,看看csrf Stuff如果你用HTML创建表单,为什么要在
forms.py
中创建表单?或者,如果你有一个python表单,为什么要创建html?如果它无效,它甚至不会被提交。。。现在无法在我的手机上进行测试,但在upload.html中,没有呈现给定的表单,但手动编码的表单与服务器端验证不完全匹配:不需要,模板中有多个文件字段,但表单中没有。通常,您不能说未提交无效表单,mind服务器端验证。您可以尝试提交一个无效的表单:)问问自己为什么有表单。django中的方法是否有效;)客户端验证不是您需要关心的唯一动物。。。进一步阅读:
    <!-- Upload form. Note enctype attribute! -->
    <form method="post" enctype="multipart/form-data" multiple>
        {% csrf_token %}
        <input type= "file" name ="docfile" multiple/>

        <button id="yukle" type="submit" value="Upload">
            <img src="/static/img/upload.png" width=28 height=30 alt="Yükle"/>
        </button>
    </form>
def SenetList(request):
    if request.method == 'POST':
        form = DocumentForm(request.POST, request.FILES)
        if form.is_valid():
            dosya_tipi = "Senet"
            context = upload(request.FILES.getlist('docfile'),form, dosya_tipi)
            return render(request, 'operations/upload.html', context)
    else:
        form = DocumentForm()
        return render(request, 'operations/upload.html', {'form': form})
class DocumentForm(forms.Form):
    docfile = forms.FileField(
        label='Select a file',
        help_text='max. 42 megabytes'
    )