2017-05-07 136 views
0

可能脱离主题,但无法研究此问题。我有一个Django REST安装,我希望能够在响应之前模拟随机数量的延迟。来自Django REST的响应延迟

我的看法(从DRF教程基本上逐字):

class SnippetList(generics.ListCreateAPIView): 
    queryset = Snippet.objects.all() 
    serializer_class = SnippetSerializer 


class SnippetDetail(generics.RetrieveUpdateDestroyAPIView): 
    queryset = Snippet.objects.all() 
    serializer_class = SnippetSerializer 

而且我希望能够3和5之间返回成功响应之前的失败响应。任何指导极大的赞赏。

回答

2

您可以覆盖您的视图的方法dispatch。下面将返回每5个请求,平均正确响应:

import random 
from django.http import Http404 

class SnippetList(generics.ListCreateAPIView): 
    # ... 

    def dispatch(self, request, *args, **kwargs): 
     if random.random() < 0.2: 
      return super(SnippetList, self).dispatch(request, *args, **kwargs) 
     raise Http404 # or any other custom behaviour 

如果你真的永远要早于第n个请求,返回正确的响应,你必须坚持,因为请求的数量最后的正确回应。会话可能在某个地方(如果计数是基于每个用户的话)或数据库。

+0

这正是我正在寻找的,谢谢! – Toby