Python 创建模型实例时django中的TypeError
我有一个模型在线预订,我试图保存用户输入的数据。但是,我在/在线预订时收到错误类型错误/ onlinebooking()获得意外的关键字参数“name”。我在单击“注册”按钮后出现此错误 这是我的模型:Python 创建模型实例时django中的TypeError,python,django,django-models,Python,Django,Django Models,我有一个模型在线预订,我试图保存用户输入的数据。但是,我在/在线预订时收到错误类型错误/ onlinebooking()获得意外的关键字参数“name”。我在单击“注册”按钮后出现此错误 这是我的模型: class onlinebooking(models.Model): name = models.CharField(max_length=30) email = models.CharField(max_length=30) phone_number = models.
class onlinebooking(models.Model):
name = models.CharField(max_length=30)
email = models.CharField(max_length=30)
phone_number = models.IntegerField()
room_type = models.CharField(max_length=10)
booking_date = models.DateField()
views.py
from django.shortcuts import render,redirect
from .models import onlinebooking
def onlinebooking(request):
if request.method == "POST":
name = request.POST['Name']
email = request.POST['email']
phone_number = request.POST['phone_no']
room_type = request.POST['room_type']
booking_date = request.POST['booking_date']
online = onlinebooking(name=name,email=email,phone_number=phone_number,room_type=room_type,booking_date=booking_date)
online.save()
return redirect('/')
else:
return render(request,'hotel/onlinebooking.html')
使用的表格:
<form action="/onlinebooking/" method="post">
{% csrf_token %}
<div class="text-primary">
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputEmail4">Name</label>
<input type="text" class="form-control" id="inputEmail4" name="Name" required>
</div>
<!-- <div class="form-group col-md-6">
<label for="lastname">Last name</label>
<input type="text" class="form-control" id="lastname"
name="lastname" required>
</div> -->
<div class="form-group col-md-6">
<label for="inputPassword4">Email</label>
<input type="text" class="form-control" id="inputPassword4" name="email" required>
</div>
<div class="form-group col-md-6">
<label for="inputPassword4">Phone no</label>
<input type="text" class="form-control" id="inputPassword4" name="phone_no" required>
</div>
<div class="form-group col-md-6">
<label for="inputState">Room Type</label>
<select id="inputState" class="form-control" name="room_type">
<option selected>Standard</option>
<option>Delux</option>
<option>Premium</option>
</select>
</div>
<div class="form-group col-md-6">
<label for="bookingtime">Booking Date</label>
<input type="date" id="bookingtime" name="booking_date" required>
</div>
<div class="text-center">
<input type="submit" value="Register" name="submit-emp" class="btn btn-primary col-sm-3 btn-user ">
</div>`
{%csrf_令牌%}
名称
电子邮件
电话号码
房间类型
标准
骗局
保险费
预订日期
`
我猜我的模型有一些错误,因为我可以访问用户的所有条目。我认为这是我这边的愚蠢错误。请帮帮我。:) 您正在使用此文件本身中的类名覆盖导入名称。 试试这个:
从django.shortcuts导入渲染,重定向
从…起导入模型
def在线预订(请求):
如果request.method==“POST”:
name=request.POST['name']
email=request.POST['email']
电话号码=请求。张贴['phone\u no']
房间类型=请求.发布['room\u type']
预订日期=请求。发布['booking\u date']
在线=型号。在线预订(姓名=姓名,电子邮件=电子邮件,电话号码=电话号码,房间类型=房间类型,预订日期=预订日期)
online.save()
返回重定向(“/”)
其他:
返回渲染(请求'hotel/onlinebooking.html')
是否可以删除名称=
,对所有变量执行此操作。只需传递如下值:在线预订(姓名、电子邮件、电话号码、房间类型、预订日期)您是否应用了迁移?可能它还不在模型中。我在/onlinebooking/onlinebooking()处得到错误TypeError,它接受1个位置参数,但给出了5个
。我试图将name作为唯一的参数传递,这给了我一个错误``if request.method=='POST':AttributeError:'str'对象没有属性'method'```是的,我已经应用了迁移。