我正在尝试创建一个基于类的日志记录处理程序,当应用程序使用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
我发现了一些与我的问题相似的问题,但其中大多数都过时了,或者太(或太少)冗长而无济于事。
我有一个这样的模型:
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的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.
任何意见,将不胜感激!
是否可以预先设置选择框的选定值?
使用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中.