我们的代码具有自定义中间件来记录请求和响应,因此我们可以记录API活动。
def process_response(self, request, response):
user = None
try:
if request.user.is_authenticated():
user = request.user
the_record = Record(
requestUser=user,
requestPath=request.path,
requestMethod=request.method)
the_record.save()
except:
pass
在process_response方法中,我们创建对象并保存它。如果API方法标有@transaction.atomic
,则会显示日志消息autocommit cannot be used inside a transaction
。
方法中没有异常,但只是在数据库中记录,因为该特定的API调用不存在。
有没有解释为什么会出现自动提交日志消息?也许使用模型管理器create
而不是save
方法?