【发布时间】:2017-02-27 19:03:05
【问题描述】:
我在 django 中使用了 sweetpie 来处理 REST api 请求。每当我执行 GET/POST 请求时,默认情况下都会使用脱水方法。但是对于 DELETE/PUT 请求,它没有任何方法可以处理它,因此无法记录请求信息。
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
是否有任何函数可以覆盖 Tastepie.resource 模块中的 ModelResource ?这样对于所有请求,我首先获取捆绑数据,然后在处理之前将其传递给记录器。
【问题讨论】:
-
当请求还没有被路由时,你不能在 WSGI 中间件级别上记录它吗?还是在Django middleware 级别?如果您只需要请求,并且您知道 API URL 的外观(例如
.startswith('/api/')),那可能就足够了。