在django orm中调用实例点域时,如何减少对数据库性能的选择域?

在django orm中调用实例点域时,如何减少对数据库性能的选择域?,django,django-models,django-rest-framework,django-orm,Django,Django Models,Django Rest Framework,Django Orm,当需要检查实例的字段值时,使用点(.)访问字段,如下所示 class store(models.Model): ........ is_open = models.BooleanField(defrault=False) ........ class User(AbstractBaseUser): ........ store = models.ForeignKey(Store) ........ 我需要在一些API中检查的值is_open,我的操作如下: reque

当需要检查实例的字段值时,使用点(.)访问字段,如下所示

class store(models.Model):
  ........
  is_open = models.BooleanField(defrault=False)
  ........

class User(AbstractBaseUser):
  ........
  store = models.ForeignKey(Store)
  ........
我需要在一些API中检查
的值is_open
,我的操作如下:

request.user.store.is_open
在本例中,django对所有字段执行select查询,但我只需要
is\u open
字段


我怎样才能只选择一个字段(在这种情况下,
是打开的)而不是选择所有字段?

我怀疑性能增益很小,但请尝试以下方法:

is_open = User.objects.filter(id=request.user.id).values('store__is_open').first()['store__is_open']

我怀疑性能增益很小,但请尝试以下方法:

is_open = User.objects.filter(id=request.user.id).values('store__is_open').first()['store__is_open']

values
values\u list
@hansefranz谢谢,但是这里的用户是一个单独的实例,我怎么能在这里使用
values
values\u list
呢?
values\u list
@hansefranz谢谢,但这里的用户是一个单独的实例,我如何使用这里的
值列表