如何更改模型中某些字段的值。Django中的模型?

2024-09-28 01:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是通过django的模型在原始查询之后更改size字段的代码片段:

ress = models.Resource.objects.raw("select id, size from `main_table`")
for res in ress:
    size = res.size
    res.size = res.size + "anything"
    print res.size # Here it prints the changed string of size field.
for res in ress:
    print res.size # it prints the original string of size field.

我想知道为什么即使我在第一个循环中更改了size字段,它仍然是第二个循环中的原始字段?谁能给我一些建议吗?非常感谢


Tags: ofthedjango代码in模型fieldfor
1条回答
网友
1楼 · 发布于 2024-09-28 01:28:57

之所以发生这种情况,是因为ress是一个RawQuerySet,并且是延迟计算的。每次循环遍历它时,都会查询数据库。如果您想ress像一个普通的列表一样操作而不必保存它,只需将它转换成如下列表:

ress = list(models.Resource.objects.raw("select id, size from `main_table`"))

相关问题 更多 >

    热门问题