[英]No handler could be found for logger “dajaxice”
AoA,我正在嘗試進行Ajax調用,當我使用args_example函數時,它成功發布,並且得到響應“消息為......”,但是如果我調用函數change(與args_example相同),則會在控制台中收到錯誤消息(找不到記錄器dajaxice的處理程序)
//ajax.py
from django.utils import simplejson
from contacts.models import Notifications
from dajaxice.decorators import dajaxice_register
@dajaxice_register
def args_example(request):
return simplejson.dumps({'message':'Message is '})
def change(request):
return simplejson.dumps({'message':'Message is '})
// JavaScript
function in template
setInterval(function(){
Dajaxice.contacts.change(callback);
},2000);
我的猜測是這是django錯誤,它是通過ajax傳遞給瀏覽器控制台的。 看一下django-dajaxice/dajaxice/core/Dajaxice.py
,其中django-dajaxice/dajaxice/core/Dajaxice.py
在頂部定義了自己的錯誤記錄器log = logging.getLogger('dajaxice')
。 因此,您需要做的是修改項目的settings.py
並使用現有處理程序定義此記錄器,例如:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue'
},
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'debug_console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler'
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'dajaxice': {
'handlers': ['debug_console'],
'level': 'WARNING',
'propagate': False,
},
}
}
請注意,由於django.utils.log.RequireDebugTrue
,此示例需要Django> = 1.5。
當然,這不會解決您的問題,但至少您會得到真正的錯誤消息。 有關Django日志的詳細信息,請閱讀官方文檔 。
真正的django錯誤來自於以下事實: @dajaxice_register
是一種方法裝飾器,必須將其放置在要在dajax中使用的每個方法的前面。 將您的ajax.py
更改為:
from django.utils import simplejson
from contacts.models import Notifications
from dajaxice.decorators import dajaxice_register
@dajaxice_register
def args_example(request):
return simplejson.dumps({'message':'Message is '})
@dajaxice_register
def change(request):
return simplejson.dumps({'message':'Message is '})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.