python - 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')
这里 Bus 表在 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() missing 1 required positional argument: '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 = [...]
[...]
推荐阅读
- azure - Azure 删除和创建的资源
- c# - 在 .netcore 中为 AzureDevOps 创建一个 WebHook
- mysql - MYSQL 工作台错误:对于此服务器版本,选择在此位置无效,期望 '(' WITH
- java - 当百里香叶中的情况为真时,不要处理每种情况
- payment - laravel 7.3.0 的 tzsk\payu 包在支付重定向后出现 419 错误
- php - Mongo db数据加密
- python - Python 元组列表如何用相同的键绘制所有元组
- scikit-learn - sklearn 的precision_recall_curve 在小例子中不正确
- python - 将奇怪的 CSV 文件导入 python 的提示和技巧
- r - R条件IfElse与随机值