如何解决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,{"form": form})
else:
form = CommissionForm()
return render(request,{"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)
以访问您的文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。