小编rob*_*rob的帖子

创建自定义django日志记录处理程序.'module'对象没有属性'handlers'

我正在尝试创建一个基于类的日志记录处理程序,当应用程序使用django提供的一些内置日志记录配置查看DisallowedHost异常时,它会通知某些第三方服务.

但是,我收到一个特殊的import错误,我无法理解如何解决.

我的settings.py

LOGGING = {
    ...
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'notify_my_service': {
            'level': 'ERROR',
            'class': 'tools.exception_logging.NotifyMyServiceHandler'
        }
    },
    'loggers': {
        ...
        'django.security.DisallowedHost': {
            'handlers': ['notify_my_service'],
            'propagate': False,
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

我的异常处理程序

import logging

class NotifyMyServiceHandler(logging.handlers.HTTPHandler):
    def emit(self, error):
        doSomething()
Run Code Online (Sandbox Code Playgroud)

大回溯

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 227, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 117, in inner_run
    autoreload.raise_last_exception()
  File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 250, in raise_last_exception
    six.reraise(*_exception)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 227, in wrapper
    fn(*args, **kwargs) …
Run Code Online (Sandbox Code Playgroud)

django exception-handling exception django-logging django-1.11

7
推荐指数
1
解决办法
272
查看次数

通过两个(或多个)字段的总和对 Django 查询集进行排序

我发现了一些与我的问题相似的问题,但其中大多数都过时了,或者太(或太少)冗长而无济于事。

我有一个这样的模型:

class Breakfast(models.Model):
    count_eggs = models.IntegerField()
    count_bacon = models.IntegerField()
    had_toast = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

现在,在构建 RESTful API 时,我需要能够按总数对早餐对象进行排序,count_eggs + count_bacon而无需将其永久存储在模型中。

许多当前和流行的问题都暗示了这样的事情:

Breakfast.objects.extra(
    select={'total_food':'count_eggs + count_bacon'},
    order_by=('total_food',)
)
Run Code Online (Sandbox Code Playgroud)

这似乎对许多人有效,但Django 文档似乎劝阻此解决方案。因此,在 1.10+ 世界中,对 Django 中的两个(或多个)字段的总和进行此类过滤的最佳/正确方法是什么?

django

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

在CoreAPI中使用TokenAuthentication时遇到问题

我正在使用django的rest_framework库为django应用程序构建API.一切都很顺利,我可以通过curl命令按预期访问我的API.

现在,我想使用CoreAPI以客户端库的形式使事情变得更加优雅.

我可以进行如下基本身份验证:

auth = coreapi.auth.BasicAuthentication(username=user, password=password)
client = coreapi.Client(auth=auth)
Run Code Online (Sandbox Code Playgroud)

我能够很好地访问API的架构.

但是,我想使用我的令牌身份验证(通过rest_framework.tokenauthenticaiton)(通过curl工作正常)我收到错误,我的代码看起来像这样:

token = 'Token abc12345'
#tried the following:
#token = 'abc12345'
#token = 'Authorization: Token abc12345'
auth = coreapi.auth.TokenAuthentication(token=token)
client = coreapi.Client(auth=auth)
Run Code Online (Sandbox Code Playgroud)

试图访问架构,我得到:

coreapi.exceptions.ErrorMessage: <Error: 401 UNAUTHORIZED>
    detail: "Authentication credentials were not provided."
Run Code Online (Sandbox Code Playgroud)

文档显示TokenAuthentication需要schema和token作为参数,但是该示例显示了使用JWT的TokenAuthentication,而不是djangos rest_framework.tokenauthentication.

任何意见,将不胜感激!

core-api django-rest-framework

4
推荐指数
1
解决办法
588
查看次数

如何在Vue中有条件地设置所选选项

是否可以预先设置选择框的选定值?

使用Vue(v2),我试图在Vue模板中创建这样的选择框.

<select v-model="selectedFlavor">
   <option v-for="flavor in flavors" 
           :value="flavor"
           :selected="selectedFlavor == flavor">{{ flavor }}</option>
</select>
Run Code Online (Sandbox Code Playgroud)

和这样的组件:

Vue.component('flavor-pane', {
      ...
      data: function() {
          selectedFlavor: 'strawberry',
          flavors: ['blueberry', 'lime', 'strawberry'],
      });
}
Run Code Online (Sandbox Code Playgroud)

本质上,我的想法是我需要遍历一个简单的数组,在选择框中创建几个选项,并将选择框的值设置为现有值.我可以这样做吗?

我的模板/组件渲染得很好,但selected即使符合条件并且在选择框中没有选择任何值,该属性似乎也不会出现在HTML中.

javascript frontend vue-component vuejs2

1
推荐指数
1
解决办法
7605
查看次数