为了最大限度地减少对django模型实例的竞争访问中的错误,我正在使用QuerySet的“only”方法。例如,我有以下模型:
#models.py
class MyModel1(models.Model):
...
class MyModel2(models.Model):
field_1 = models.ForeignKey(MyModel1)
...
我正在以这种方式“使用”:
instances = list(MyModel2.objects.filter(...).only('id'))
此时是否会加载字段“field_1_id”(不是'field_1',而是'field_1_id')?
答案 0 :(得分:1)
only()方法仅加载模型MyModel2的id。
答案 1 :(得分:0)
使用values_list()方法结帐,如果您只需要一个字段并传递它,则可以返回值列表 flat = True :
instances = MyModel2.objects.filter(...).values_list('id', flat=True)