Dil*_*ine 6 django-rest-framework
我正在尝试将"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()
Run Code Online (Sandbox Code Playgroud)
queryset = Model_A.objects.all().prefetch_related('model_b')
Run Code Online (Sandbox Code Playgroud)
另外,您可以使用此答案将您的 sql 查询记录到控制台
| 归档时间: |
|
| 查看次数: |
6288 次 |
| 最近记录: |