Python Django形式的说法是;此字段为必填字段;(偶数文本字段),尽管它';已经有人了

Python Django形式的说法是;此字段为必填字段;(偶数文本字段),尽管它';已经有人了,python,django,Python,Django,其他一些人以前也有过这个问题,但他们都与文件相关。对我来说,即使是我已经填写(并且必须填写)的文本字段也会返回“此字段是必需的”错误,而我已经完成了人们建议的所有操作。看看我的代码: 视图 class MainForm(forms.Form): name = forms.CharField() subject = forms.CharField() text = forms.CharField(widget=forms.Textarea) file = forms

其他一些人以前也有过这个问题,但他们都与文件相关。对我来说,即使是我已经填写(并且必须填写)的文本字段也会返回“此字段是必需的”错误,而我已经完成了人们建议的所有操作。看看我的代码:

视图

class MainForm(forms.Form):
    name = forms.CharField()
    subject = forms.CharField()
    text = forms.CharField(widget=forms.Textarea)
    file = forms.FileField()
    password = forms.CharField()

def mainpage(request):
    if request.method == 'POST':
        form = MainForm(request.FILES or None, request.POST or None)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponse('Ok')


    else:
        form = MainForm()
    return render(request, "main.html", {'form': form})

def handle_uploaded_file(file):
    name = file.name

    with open(os.path.join("static\img", "{0}".format(name)), 'wb+') as destination:
        for chunk in file.chunks():
            destination.write(chunk)
模板:

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>{{ siteTitle }}</title>
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/main.css">
</head>
<body>
{% include 'header.html' %}

<form enctype="multipart/form-data" method="post">
    {% csrf_token %}
    <table>
    <ul>
        {{ form.as_table }}
    </ul>

    </table>
    <input type="submit" value="Submit" />
</form>


</body>
</html>
{%load staticfiles%}
{{siteTitle}}
{%include'header.html%}
{%csrf_令牌%}
    {{form.as_table}}
应该注意的是,当我将所有内容设置为非必需时,它只返回一个空表单


感谢您的慷慨帮助。

表单中的参数顺序错误-
请求。POST
必须放在第一位:

# request.POST must come before request.FILES.
form = MainForm(request.POST, request.FILES)
此外,您不需要
或None
<代码>POST和
文件
始终存在于中,即使它们是空的

您可能也不希望这些
ul
标签出现在表中:

<table>
    {{ form.as_table }}
</table>

{{form.as_table}}

欢迎!请将示例简化为您想要展示的内容。相反,请明确显示在执行示例时我们应该期望的行为。