This is view:
def add_bus_save(request):
if request.method=="POST":
Type=request.POST.get("Type")
Number_of_Seats=request.POST.get("Number_of_Seats")
driver=request.POST.get("driver")
hostess=request.POST.get("hostess")
manager_id=request.POST.get("manager_id")
staff_id=request.POST.get("staff_id")
if driver.isalpha()==False:
messages.error(request, 'Enter name of valid alphabets')
return redirect('add_bus')
elif hostess.isalpha()==False:
messages.error(request, 'Enter name of valid alphabets')
return redirect('add_bus')
else:
try:
bus.Type=Type
bus.Number_of_Seats=Number_of_Seats
bus.driver=driver
bus.hostess=hostess
manager_obj1=Manager.objects.get(id=manager_id)
bus.manager_id=manager_obj1
staff_obj1=Staff.objects.get(id=staff_id)
bus.staff_id=staff_obj1
bus.save() #Error
messages.success(request,"Successfully Added Bus")
return HttpResponseRedirect(reverse("add_bus"))
except:
messages.error(request,"Failed to Add Bus")
return HttpResponseRedirect(reverse("add_bus"))
else:
return render(request, 'add_bus.html')
这里总线表在model.py文件中定义:
class Bus(models.Model):
id=models.AutoField(primary_key=True)
manager=models.ForeignKey(Manager,on_delete=models.CASCADE,null=True )
staff=models.ForeignKey(Staff,on_delete=models.CASCADE, null=True )
created_at=models.DateTimeField(auto_now_add=True)
updated_at=models.DateTimeField(auto_now_add=True)
Type=models.TextField()
Number_of_Seats=models.IntegerField()
driver=models.CharField(max_length=255)
hostess=models.CharField(max_length=255)
objects=models.Manager()
我想把bus.save()保存到mysql,但是它给了我一个bus.save()错误,typeerror:save()缺少一个必需的位置参数'self',我应该如何解决它呢? 我试图通过form.py在总线中保存数据,但在保存时出错:
bus.Type=Type
bus.Number_of_Seats=Number_of_Seats
bus.driver=driver
bus.hostess=hostess
manager_obj1=Manager.objects.get(id=manager_id)
bus.manager_id=manager_obj1
staff_obj1=Staff.objects.get(id=staff_id)
bus.staff_id=staff_obj1
bus.save() #Error
为了保存一个新对象,首先必须实例化一个。 然后可以为其赋值并将其保存到数据库中。
[...]
else:
try:
[...]
# Instantiate object
bus = Bus()
# Define values
bus.field1 = value_1
bus.field2 = value_2
[...]
# Save object
bus.save()
[...]
[...]
使用总线
:
class Bus(models.Model)
field1 = [...]
field2 = [...]
[...]
bus
参数太多。 您应该像这样分配所有总线数据:
bus_form = (bus.Type=Type
bus.Number_of_Seats=Number_of_Seats
bus.driver=driver
bus.hostess=hostess
manager_obj1=Manager.objects.get(id=manager_id)
bus.manager_id=manager_obj1
staff_obj1=Staff.objects.get(id=staff_id)
bus.staff_id=staff_obj1
)
bus_form.save()