gpt4 book ai didi

python - 为什么我不能在 Django 中保存对象?

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:13 25 4
gpt4 key购买 nike

thechan = Score.objects.filter(content=44)[0:1]
thechan[0].custom_score = 2
thechan[0].save()

我打印报表,它显示一切正常。然而,这并没有节省!

我进入我的数据库,然后运行一个简单的 SELECT 语句......它没有改变!

select custom_score FROM music_score where content_id = 44;

最佳答案

这里发生的事情是 Score.objects.filter() 不返回常规列表,而是返回 QuerySet。 . QuerySet 在某些方面表现得像列表,但每次对一个进行切片时,都会得到一个新的 QuerySet 实例,而每次对一个进行索引时,都会得到模型类的一个新实例。

这意味着您的原始代码执行如下操作:

thechan = Score.objects.filter(content=44)[0:1]
thechan[0].custom_score = 2

thechan = Score.objects.filter(content=44)[0:1]
thechan[0].save() # saves an unmodified object back to the DB, no effective change

如果出于某种原因你需要在 QuerySet 上执行此操作而不是仅仅使用 get(),你可以这样写:

thechan = Score.objects.filter(content=44)[0]
thechan.custom_score = 2
thechan.save()

相反。例如,如果您要遍历 QuerySet 的元素而不是处理单个记录,这种区别就变得更加重要。

关于python - 为什么我不能在 Django 中保存对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1528656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com