Django中'int'对象无'save'属性问题求助
解决Django中'int'对象无'save'属性的错误
问题原因
你报错的核心是:nbrbulle变量存储的是整数类型的值,而非Django模型对象。整数类型没有save()方法,调用时自然触发错误。
看你代码里的错误片段:
nbrbulle=Bulles.objects.get(pk=id_bulle).id_site.nombre_bulles nbrbulle=compte nbrbulle.save()
- 第一行中,
.nombre_bulles获取的是Site模型里的整数字段值,不是Site对象本身 - 第二行把计数结果(整数
compte)赋值给nbrbulle,它依然是整数类型 - 第三行调用
save()必然报错
修正代码
你需要先拿到对应的Site模型对象,修改其字段后再调用对象的save()方法。利用你已经获取的site=param.id_site(这就是Site对象),可以简化代码:
def DeleteBulle (request, id_bulle): # 获取要删除的Bulle对象 param = Bulles.objects.get(pk=id_bulle) # 执行删除操作(取消注释才会生效) param.delete() # 更新对应Site的nombre_bulles字段 site_obj = param.id_site # 计算当前关联的Bulle数量(删除param后,count会自动减1) compte = Bulles.objects.filter(id_site=site_obj).count() # 修改字段值 site_obj.nombre_bulles = compte # 保存到数据库 site_obj.save() print("Bulle supprimée") return redirect('api_bulles_frontend')
额外提示
- 记得取消
param.delete()的注释,否则Bulle不会被删除,compte的计数也不会更新 - 避免重复查询:你已经通过
param.id_site拿到了Site对象,不需要再通过Bulles.objects.get(pk=id_bulle)重复获取,减少数据库查询开销
内容的提问来源于stack exchange,提问作者lsn
相关产品推荐
相关产品推荐

