【发布时间】:2021-05-16 10:36:47
【问题描述】:
select_related 被使用,因此每当访问定义的外键时,它将包含在第一个查询中,并且不会向 db 发出另一个查询。但我有一个案例,只需要几个字段。这是一个例子
class PMapKomoditi(models.Model):
id = models.IntegerField(primary_key=True)
komoditi_fk = models.ForeignKey(PMastKomoditi, models.RESTRICT, db_column='id_komoditi')
kd_komoditi = models.CharField(max_length=2)
nm_komoditi = models.CharField(max_length=50, blank=True, null=True)
uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
// ...
class PMastKomoditi(models.Model):
id = models.AutoField(primary_key=True)
uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
// ...
我只需要 kd_komoditi 和 komoditi_fk 属性,所以我会查询以下内容:
my_query = PMapKomoditi.objects.select_related(
'komoditi_fk'
).Only(
'kd_komoditi',
'komoditi_fk'
)
我是否需要包含 select_related 或者它已经被 only() 覆盖了?
【问题讨论】:
标签: python django django-models django-rest-framework