python - 在 Django mysql 中提交表单时出现值错误
问题描述
在 Django 中提交表单时出现值错误。我已成功连接 XAMPP 中的 MySQL 数据库。我找不到解决方案。这是我的表单代码,
<form class="user" method="POST">
{% csrf_token %}
<div class="form-group">
<input type="text" class="form-control form-control-user" id="Cus_name" name="Cus_name" placeholder="Enter Customer Name...">
</div>
<div class="form-group">
<input type="text" class="form-control form-control-user" id="Cus_address" name="Cus_address" placeholder="Enter Address... ">
</div>
<div class="form-group">
<input type="email" class="form-control form-control-user" id="Cus_email" placeholder="Enter Email Address...">
</div>
<div class="form-group">
<input type="text" class="form-control form-control-user" id="Purpose" placeholder="Enter Purpose...">
</div>
<div class="form-group">
<input type="date" class="form-control form-control-user" id="Date" placeholder="Enter Date...">
</div>
<div class="form-group">
<input type="time" class="form-control form-control-user" id="Time" placeholder="Enter Time...">
</div>
<div class="form-group">
<input type="text" class="form-control form-control-user" id="Venue" placeholder="Enter Venue...">
</div>
<button name="submit" type="submit" class="btn btn-success">Submit</button>
<hr>
</form>
这是我的 Views.py
from django.shortcuts import render
from .models import AppointmentDet
from django.contrib import messages
def InsertDetails(request):
if request.method == 'POST':
if request.POST.get('Cus_name') and request.POST.get('Cus_address') and request.POST.get('Cus_email') and request.POST.get('Purpose') and request.POST.get('Date') and request.POST.get('Time') and request.POST.get('Venue'):
saverecord = AppointmentDet()
saverecord.Cus_name = request.POST.get('Cus_name')
saverecord.Cus_name = request.POST.get('Cus_address')
saverecord.Cus_name = request.POST.get('Cus_email')
saverecord.Cus_name = request.POST.get('Purpose')
saverecord.Cus_name = request.POST.get('Date')
saverecord.Cus_name = request.POST.get('Time')
saverecord.Cus_name = request.POST.get('Venue')
saverecord.save()
messages.success(request, "details saved successfully!")
return render(request, "appform.html")
else:
return render(request, "appform.html")
这是我在运行服务器时遇到的错误。
ValueError at / 视图 Management.views.InsertDetails 未返回 HttpResponse 对象。它返回 None 。
我尝试了一些解决方案,但没有奏效。
解决方案
你应该阅读这个关于如何使用表单的小教程:
https://docs.djangoproject.com/en/3.1/topics/forms/
发送数据时,您应该首先将帖子转换为表单类对象。然后你必须在所述表格上调用“is_valid()”。
只有在此方法调用后,post 数据才会在对象中。
这是来自 django 的示例:
def get_name(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = NameForm(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
return HttpResponseRedirect('/thanks/')
# if a GET (or any other method) we'll create a blank form
else:
form = NameForm()
return render(request, 'name.html', {'form': form})`
推荐阅读
- android - Firebase Auth 无需登录即可注册
- paypal - PayPal Adaptive Payments 自动退还订单
- python - 将numpy的日期时间数组与时间戳进行比较
- javascript - 使用给定的 html 和 javascript(脚本标签)打开新窗口
- python - IndexError:维度超出范围(预计在 [-1, 0] 范围内,但得到 1)
- reactjs - React boostrap 表的响应不起作用
- json - Xquery如何搜索布尔值
- c# - 保存一段加密的文本,然后使用 GUI 应用程序打开解密它
- c# - 如何将 Razor 页面的 @code 部分打印到 HTML 视图?
- azure - Azure 链接模板 - 未找到内联参数