小编OrP*_*rPo的帖子

将请求记录到django-rest-framework

出于调试目的,我想使用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"选项我不知道?

python django django-rest-framework

30
推荐指数
5
解决办法
2万
查看次数

在Django 1.5自定义用户模型中使用电子邮件作为用户名字段导致FieldError

我想使用电子邮件字段作为我的自定义用户模型的用户名字段.我有以下自定义用户模型子类化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 django-models django-1.5

22
推荐指数
3
解决办法
1万
查看次数

Django-rest-framework时区感知渲染器/解析器

我正在构建一个应用程序,可以为位于世界各地的人们提供服务.
我正在使用Django-Rest-Framwork进行客户端和服务器之间的通信.
所有DateTime值都以UTC格式保存到数据库中(我有USE_TZ = TrueTIME_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轻松实现这一目标?

django django-rest-framework

21
推荐指数
2
解决办法
7731
查看次数