【发布时间】:2016-05-03 01:51:31
【问题描述】:
我们想为我们的 django 项目提供一个 api,所以我们使用 drf(django rest 框架)。 我们使用 ModelSerializer,它提供了一个快捷方式,可以让您自动创建一个带有与 Model 字段对应的字段的 Serializer 类。 我们的问题是它运行得很慢。换句话说,序列化过程大约需要 40 秒才能检索到响应。
我们如何才能减少这种延迟?
查看
class MyObjViewSet(viewsets.ModelViewSet):
pagination_class = LargeResultsSetPagination
def get_queryset(self):
queryset = MyObj.objects.all().order_by('time')
return queryset
serializer_class = MyObjSerializer
我的对象模型
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')
MyObj 用户模型
class User(models.Model):
id = models.IntegerField(primary_key=True)
username = models.CharField(max_length=80)
我的 Obj 序列化器
class MyObjSerializer(serializers.ModelSerializer):
class Meta:
model = MyObj
fields = ('id', 'type', 'time', 'user')
我的问题是当我想检索我的 obj 列表时,大约需要 40 秒!
【问题讨论】:
-
@KevinBrown :不,这不是我的问题!
-
你确定吗?看起来非常相似(外键与另一个模型)它也在此处ses4j.github.io/2015/11/23/… 中进行了解释
-
我仍然欢迎这个问题的新答案,我相信 Django 序列化程序很慢。 :/ 这不是数据库问题。
标签: django performance django-rest-framework