Django Queryset only 方法和外键实域 ('_id')



为了尽量减少竞争访问 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")?

only() 方法只加载模型 MyModel2 的 id。

使用 values_list() 方法签出,如果您只需要一个字段并且您将其传递为平面 = True,该方法可以返回值列表:

instances = MyModel2.objects.filter(...).values_list('id', flat=True)

最新更新