出于调试目的,我想使用Django的日志记录机制来记录每个传入的请求,当它"到达"django-rest-framework的门口时.
Djagno以下列方式提供其请求的记录(仅"警告"日志级别及以上)(来自settings.py中的LOGGING部分):
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
Run Code Online (Sandbox Code Playgroud)
我想要实现这样的事情(注意:日志级别是DEBUG):
'rest_framework.request': {
'handlers': ['logfile'],
'level': 'DEBUG',
'propagate': False,
},
Run Code Online (Sandbox Code Playgroud)
有没有办法在不将记录器嵌入DRF的源代码的情况下做到这一点?
DRF中是否有某种"Logging Backend"选项我不知道?
我想使用电子邮件字段作为我的自定义用户模型的用户名字段.我有以下自定义用户模型子类化Django的AbstractUser模型:
class CustomUser(AbstractUser):
....
email = models.EmailField(max_length=255, unique=True)
USERNAME_FIELD = 'email'
Run Code Online (Sandbox Code Playgroud)
但是当我跑步的时候
python manage.py sql myapp
我收到以下错误:
FieldError:类'CustomUser'中的本地字段'email'与基类'AbstractUser'中类似名称的字段冲突
我首先包含自己的电子邮件字段的原因是为其添加unique=True选项.否则我得到:
myapp.customuser:USERNAME_FIELD必须是唯一的.将unique = True添加到字段参数中.
现在,对于这一点:
https://docs.djangoproject.com/en/1.5/topics/db/models/#field-name-hiding-is-not-permitted
如何能我做到这一点?(另外,然后命名字段"user_email"或类似的东西)
我正在构建一个应用程序,可以为位于世界各地的人们提供服务.
我正在使用Django-Rest-Framwork进行客户端和服务器之间的通信.
所有DateTime值都以UTC格式保存到数据库中(我有USE_TZ = True和TIME_ZONE = 'Greenwich'在settings.py中).
我将从用户那里得到他/她的当地时区.
为了测试 DRF的时区感知,我用固定的时区编写了这个中间件:
import pytz
from django.utils import timezone
class TimezoneMiddleware(object):
def process_request(self, request):
timezone.activate(pytz.timezone("Asia/Jerusalem"))
Run Code Online (Sandbox Code Playgroud)
问题是:
我有一个案例,我从用户"start_time"和"end_time"字段中获取用户的LOCAL时区中的日期时间,该时区通过UnicodeJSONRenderera到达a ModelSerializer然后保存到DB.但是,它们会像在UTC中一样保存.
此时,我希望序列化程序(或解析器)将用户的日期时间输入视为日期时间,需要从"亚洲/耶路撒冷"转换为UTC,然后保存到数据库,因为我执行了timezone.activate(pytz.timezone("Asia/Jerusalem")).
当数据在响应中被解析回来时也是如此JSONParser.
虽然期望返回的JSON中的DateTime字段位于中间件中激活的时区中,但它们将返回UTC.
如何在DRF轻松实现这一目标?