我想实现一个Tastypie资源,允许GET和下面的每用户权限策略POST操作,该模型是非常简单的(类似Tastypie文档中的注意事项型号)和资源本身也很简单,我只是有一个额外的override_urls方法,用Haystack实现搜索.
我现在的主要问题是,尽管在本地运行项目似乎工作正常,但请求速度快,而且一切都很快.一旦我部署了项目(On Linode,使用Nginx,Gunicorn,Runit),我发现POST请求太慢,大约需要1.1分钟才能返回201状态.另一方面,GET请求正如预期的那样运作良好.
我在请求上运行了一个Python Hotshot分析器,它显示整个POST请求占用0.127 CPU秒.我不太确定这里发生了什么.
我应该提一下,我正在为我的Tastypie资源使用ApiKeyAuthentication和DjangoAuthorization.
以下是Chrome Inspector针对请求的屏幕截图:http://d.pr/i/CvCS
如果有人能指引我找到正确的方向来寻找这个问题的答案,那将是很棒的.
谢谢!
编辑:
一些代码:
型号和资源:
class Note(models.Model):
timestamp = models.DateTimeField('Timestamp')
user = models.ForeignKey(User)
page_title = models.CharField("Page Title", max_length=200)
url = models.URLField('URL', verify_exists=False)
summary = models.TextField("Summary")
notes = models.TextField("Notes", null=True, blank=True)
def __unicode__(self):
return self.page_title
def get_absolute_url(self):
return self.url
class NoteResource(ModelResource):
user = fields.ForeignKey(UserResource, 'user')
class Meta:
queryset = Note.objects.all()
resource_name = 'note'
list_allowed_methods = ['get', 'post']
detail_allowed_methods = ['get']
always_return_data = True
authentication = ApiKeyAuthentication()
authorization = DjangoAuthorization() …Run Code Online (Sandbox Code Playgroud)