如何在tastypie django中记录所有请求

时间:2016-10-18 13:16:16

标签: python django tastypie

我在django中使用了tastypie来处理REST api请求。当我做GET / POST请求时,它默认为脱水方法。但是对于DELETE / PUT请求它没有任何方法tastypie处理它,因此无法记录请求信息。

class ProjectResource(ModelResource):
    allowed_methods = ['get', 'put', 'post', 'delete']
    resource_name = 'project'
    queryset = Project.objects.all()
    validation = FormValidation(form_class=ProjectForm)
    always_return_data = True
    filtering = {
        'id': ALL,
        'slug': ALL,
        }

def dehydrate(self, bundle):
    import pdb;pdb.set_trace()   #--> get/post request hit this function
    logger.log('app.main','debug', 'Project info', bundle)
    bundle.data['name'] = cgi.escape(bundle.obj.name)
    return bundle

是否有任何函数可以覆盖tastypie.resource模块中的ModelResource?所以对于所有请求我首先得到捆绑数据,然后我会在处理之前将其传递给记录器。

1 个答案:

答案 0 :(得分:1)

有点晚了,但是如果你可以描述目的是什么,那么可能更容易指出你正确的方向。

您说您想记录请求信息,但是使用Option Explicit Sub test() Dim r As Range Dim sh As Worksheet For Each sh In ThisWorkbook.Worksheets Set r = sh.Range("a1:i1") r.Font.Bold = True r.Font.Name = "Segoe UI Symbol" r.Font.Size = 14 Set r = sh.Range("a2:i100") r.Font.Bold = True r.Font.Name = "Segoe UI Symbol" r.Font.Size = 11 Next sh End Sub 方法记录捆绑包不会这样做,因为任何更改(例如在dehydrate请求上添加主键已经是完成。

您可能最好直接在POST方法中记录request.body

如果您确实想要记录回复,您也可以使用dispatch方法执行此操作。

dispatch