【发布时间】:2015-09-08 07:15:42
【问题描述】:
我正在尝试将“select_related”查询集方法与 DRF 序列化程序一起使用, 但是这个例子仍然在做很多 sql 查询。
如何从 select_related 方法中获取相关对象“model_b”?
class Model_A(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()
model_b = models.ForeignKey(Model_B, null=True, blank=True)
class Model_B(models.Model):
title = models.CharField(max_length=100)
class Model_A_Serializer(serializers.ModelSerializer):
model_b = Model_B_Serializer(source="model_b")
class Meta:
model = Model_A
fields = ('title', 'model_b')
class Model_B_Serializer(serializers.ModelSerializer):
class Meta:
model = Model_B
class Model_A_View(viewsets.ModelViewSet):
serializer_class = Model_A_Serializer
queryset = Model_A.objects.select_related('model_b').all()
【问题讨论】:
-
您的实际代码可能存在一些问题,但它应该可以正常工作,如上所述。我需要更多信息。
-
我投票结束这个问题作为离题,因为你没有包括你得到的 SQL 查询。根据您编写的代码应该可以正常工作。