【问题标题】:Django form keeps complaining required fieldDjango表单不断抱怨必填字段
【发布时间】:2019-08-20 17:20:52
【问题描述】:

表单提交但立即说此字段是必填项...尽管已填写。我做错了什么

在我看来:

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

【问题讨论】:

  • 向我们展示print(request.POST) 的输出和/或向我们展示带有
    的模板部分。以及根据报错需要哪个字段?
  • 是file字段,request.POST跟在
  • 第一次加载:跨度>
  • 在这种情况下也是print(request.FILES)
  • 文件:

标签: django forms model field required


【解决方案1】:

您忘记设置表单编码类型。

<form action="/fileupload/" method="post" enctype="multipart/form-data">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-30
    • 1970-01-01
    • 2017-03-19
    • 2011-12-02
    • 2010-11-11
    相关资源
    最近更新 更多