【发布时间】:2015-11-08 18:34:27
【问题描述】:
开始的示例代码:
In my model:
class X(models.Model):
someField = models.ManyToManyField(Many_values, related_name='someField')
......
In my controller (which is a controller, not a view, get over it, Django!)
xes = X.objects.filter(iscool=True) [1]
.......
some_function_call(xes)
In some function:
for x in xes:
some_table.append(x.someField.first()) [2]
现在,有什么方法可以强制执行 django,在 [1] 时刻获取那些 someField 值(或者至少是第一个值)?
现在,我将这些值存储在 [2] 的表中,其中:
- 导致每次调用时立即选择数据库
- 似乎每次我调用 first() 函数时都会导致它们
- 效率低下,因为如果加入 [1] 数据库选择会更快
- 强制我将这些 first() 值存储在单独的表中,我必须记住这一点
- 提醒我,我无法正确格式化我的 stackoverflow 帖子,因此该列表很可能会显示为纯文本
简而言之,我想要实现的是:
每当我打电话时
x.someField.first()
我不希望它在数据库中查找它。
【问题讨论】:
标签: python django database orm initialization