save() 缺少 1 个必需的位置参数'self'


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((缺少1个必需的位置参数:"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()
[...]
[...]

带有模型Bus

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()

最新更新