Django Queryset only方法和外键实际字段('_id')

时间:2013-11-18 13:32:16

标签: python django django-queryset

为了最大限度地减少对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')?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

使用values_list()方法结帐,如果您只需要一个字段并传递它,则可以返回值列表 flat = True

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