我们想为我们的 django 项目提供一个 api,所以我们使用 drf (django Rest Framework)。我们使用 ModelSerializer,它提供了一种快捷方式,可让您自动创建一个具有与模型字段对应的字段的序列化器类。我们的问题是它运行得很慢。换句话说,序列化过程大约需要 40 秒才能检索到响应。
我们怎样才能减少这种延迟呢?
看法
class MyObjViewSet(viewsets.ModelViewSet):
pagination_class = LargeResultsSetPagination
def get_queryset(self):
queryset = MyObj.objects.all().order_by('time')
return queryset
serializer_class = MyObjSerializer
Run Code Online (Sandbox Code Playgroud)
我的对象模型
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')
Run Code Online (Sandbox Code Playgroud)
MyObj 用户模型
class User(models.Model):
id = models.IntegerField(primary_key=True)
username = models.CharField(max_length=80)
Run Code Online (Sandbox Code Playgroud)
我的 Obj 序列化器
class MyObjSerializer(serializers.ModelSerializer):
class Meta:
model = MyObj
fields = ('id', 'type', 'time', 'user')
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我想检索 obj 列表时,大约需要 40 秒!