Django形式不断抱怨必填字段

问题描述 投票:0回答:1

表格提交但是立即说这个字段是必需的......尽管它已经填写完毕。我究竟做错了什么

在我看来:

def fileupload(request):
    if request.user.is_authenticated and request.user.is_staff:
        if request.method == 'POST':
            form = UploadFileForm(request.POST, request.FILES)
            if form.is_valid():
                handle_uploaded_file(request.FILES.getlist('file_field'))
                return HttpResponseRedirect('/fileupload/')
        else:
            form = UploadFileForm()
        return render(request, 'fileupload.j2.html', {'form': form})
    return HttpResponseForbidden('<h1>403 Forbidden</h1>')

用这种形式:

class UploadFileForm(forms.Form):
    kit_number = forms.CharField(label="Kit number", max_length=100, required=True, help_text='Required.')
    file_field = forms.FileField(label='Upload kit result')

和模板:

{% extends "menu.j2.html" %}
{% block content %}
{% if request.user.is_authenticated and request.user.is_staff %}
<h3>File upload</h3><br><br>
    <form action="/fileupload/" method="post">
    {% csrf_token %}
<div class="form-group">
    <table>
{{ form.as_table() }}
    </table>
</div>
    <input id="button" class="btn" type="submit" value="Sent">

    </form>

{% else %}
You are not authorized to see this page
{% endif %}
{% endblock %}
django forms model field required
1个回答
1
投票

你忘了设置表单enctype。

<form action="/fileupload/" method="post" enctype="multipart/form-data">
© www.soinside.com 2019 - 2024. All rights reserved.