Django表单未在POST中提交

格莱斯

遇到无法将文件上传到表单的问题。从我自己的角度来看,这是因为我没有在POST中提交(因为除非您处于POST状态,否则不会保存上载的文件),但我不知道为什么会这样。这是我的代码:

Views.py

def commission(request):
if request.method == "POST":
    form = CommissionForm(request.POST)

    if form.is_valid():
        subject = str(form.cleaned_data.get("name")) + "'s commission request"
        message = form.cleaned_data.get("name") + ",\nhas requested a commission, with the following request:\n" + form.cleaned_data.get("request") + "\n Reply to them using their email:\n" + form.cleaned_data['email']
        email = form.cleaned_data['email']
        print(form.cleaned_data)
        attach = request.FILES['reference']
        try:
            mail = EmailMessage(subject, message, settings.EMAIL_HOST_USER, [email])
            if attach != None:
                mail.attach(attach.name, attach.read(), attach.content_type)
            mail.send()
            return redirect("main-commissions-success")
        except:
            return render(request, "main/commissions.html", {"form": form})
    return render(request, "main/commissions.html", {"form": form})

else:
    form = CommissionForm()

return render(request, "main/commissions.html", {"form": form})

Commissions.html

<div class="row">
    <div class="content-section card w-50 mx-auto my-5">
        <div class="card-body">
            <form method="POST" action="" class="border border-light m-10" enctype="multipart/form-data">
                {% csrf_token %}
                <fieldset class="form-group">
                    <legend class="border-bottom mb-4 text-center">Request A Painting</legend>
                    {{ form|crispy }}
                </fieldset>
                <div class="form-group text-center">
                    <button class="btn btn-outline-info" type="submit">Send Request</button>
                </div>
            </form>
        </div>
    </div> 
</div>

并且由于这没有模型关系,因此我不会在这里添加它。希望有人可以指出我犯的任何愚蠢的错误。

格莱斯

我发现了问题所在,因此,对于其他遇到类似问题的人,我忘记了从发布请求中请求文件。所以这:

if request.method == "POST":
form = CommissionForm(request.POST)

就是这样的:

if request.method == "POST":
form = CommissionForm(request.POST, request,FILES)

为了访问您的文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

表单未在laravel中提交?

来自分类Dev

如何解决未在Django中提交的表单

来自分类Dev

表单未在委托事件中提交

来自分类Dev

CasperJS表单未在AngularJS中提交

来自分类Dev

jQuery表单创建未在IE中提交

来自分类Dev

更新 textarea 未在表单中提交

来自分类Dev

.submit()附加到动态加载表单的Jquery方法未在除IE之外的浏览器中提交任何“ POST”数据

来自分类Dev

在 AngularJS 中提交表单?

来自分类Dev

单击重置单选按钮尝试在Django中提交表单

来自分类Dev

在Django视图中提交表单的不同重定向

来自分类Dev

django 禁用 Booleanfield 未在 POST 方法上提交

来自分类Dev

未在 Window 上提交表单

来自分类Dev

提交按钮未在表单上提交

来自分类Dev

在WebBrowser中提交HTML表单

来自分类Dev

在angularjs中提交动态表单

来自分类Dev

表单在opencart中提交

来自分类Dev

在Rails中提交多个表单

来自分类Dev

无法在JSP中提交表单

来自分类Dev

如何使用从以前在 Django 中提交的 HTML 表单中收到的数据来预填充表单?

来自分类Dev

DropDown值未在MVC中提交

来自分类Dev

dll 文件未在 github 中提交

来自分类Dev

在Rails中提交新表单时,没有路线与[POST]相匹配

来自分类Dev

在Rails中提交新表单时,没有路线与[POST]相匹配

来自分类Dev

Django查找提交的表单

来自分类Dev

提交ChoiceField表单Django

来自分类Dev

提交表单html django

来自分类Dev

未在表单提交中添加嵌套字段

来自分类Dev

AngularJS表单未在提交时清除

来自分类Dev

角表单组未在提交时返回