大家好日子!
我需要使用Django Rest Framework在Django 1.10.4中记录操作,并将它们保存在一个文件中。
我有不同的序列化程序和功能。我已经阅读了文档,并且不太明白我必须做什么才能使用我发送的数据记录CREATE,UPDATE或DELETE等操作
例如我有:
class MySerializer(serializers.HyperlinkedModelSerializer):
def create(self, validated_data):
...some code...
return object
def update(self, instance, validated_data):
...some code...
return instance
我该怎么做?你是否有类似任务的参考?
答案 0 :(得分:4)
美好的一天,同伴Stackoverflower!
让我们一步一步来。
首先,您需要申报Django logger。这基本上是一种文件处理程序(在您的情况下,因为您要写入文件)具有一些额外的功能。
最简单的记录器可以是(在settings.py
中):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': '/path/to/django/debug.log',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
接下来,在要记录内容的每个文件中,首先必须获取对记录器的引用。你可以这样做:
import logging
logger = logging.getLogger(__name__)
现在你有了记录器,你可以简单地开始记录你想要的任何东西。您示例中的代码变为:
class MySerializer(serializers.HyperlinkedModelSerializer):
def create(self, validated_data):
...some code...
logger.info('Information incoming!')
return object
def update(self, instance, validated_data):
...some code...
logger.error('Something went wrong!')
return instance
但是,我觉得您希望为每个序列化程序完成此操作。如果是这样的话,请告诉我,我会延长答案。
祝你好运!答案 1 :(得分:0)
大部分操作都列在mixins.py
中