我们希望为我们的Django项目提供API,因此我们使用DRF(Django Rest Framework)。
我们使用ModelSerializer,它提供了一种快捷方式,可以自动创建一个Serializer类,其中包含与Model字段对应的字段。
我们的问题是它运行得非常慢。换句话说,序列化过程大约需要40秒才能检索到响应。
我们该如何减少这种延迟?
视图
我的对象序列化器
视图
class MyObjViewSet(viewsets.ModelViewSet):
pagination_class = LargeResultsSetPagination
def get_queryset(self):
queryset = MyObj.objects.all().order_by('time')
return queryset
serializer_class = MyObjSerializer
我的 Obj 模型
class MyObj(models.Model):
id = models.BigIntegerField(primary_key=True)
time = models.DateTimeField()
type = models.CharField(max_length=5)
user = models.ForeignKey('User', related_name='myobj')
我的对象用户模型
class User(models.Model):
id = models.IntegerField(primary_key=True)
username = models.CharField(max_length=80)
我的对象序列化器
class MyObjSerializer(serializers.ModelSerializer):
class Meta:
model = MyObj
fields = ('id', 'type', 'time', 'user')
我的问题是当我想要检索我的对象列表时,需要大约40秒钟的时间!