我試圖創建一個基本的提交表單(如dajaxice的例子),但我不斷收到來自螢火控制檯404錯誤:Dajaxice網絡錯誤404:未找到方法
404 NOT FOUND 386ms
"NetworkError: 404 NOT FOUND - http://<my_website>/dajaxice/maynard.maynard_core.subscribe/"
我的項目文件夾結構
/maynard/maynard_core/
此文件夾包含項目(views.py,ajax.py等等...主要Django項目文件夾) 裏面的ajax.py文件的主文件,還有的訂閱方法:
from dajax.core import Dajax
from dajaxice.core import dajaxice_functions
from dajaxice.decorators import dajaxice_register
from views import subscribe_search
from forms import SubscriptionForm, SendMailForm
from django.core.mail import send_mail
def subscribe(request, form):
if request.POST:
dajax = Dajax()
form = SubscriptionForm(form)
try:
if form.is_valid():
url = form.cleaned_data['url_sub']
what = form.cleaned_data['what_sub']
where = form.cleaned_data['where_sub']
mail = form.cleaned_data['email']
subscribe_search(url,what,where,mail)
dajax.assign('#sub_mess_top','innerHTML','Thank you for subscribing to the search')
else:
dajax.add_css_class('#sub_mess_top','text error-message')
dajax.assign('#sub_mess_top','innerHTML','Couldn\'t complete the request, try again!')
return dajax.json()
except:
dajax.add_css_class('#sub_mess_top','text warning-message')
dajax.assign('#sub_mess_top','innerHTML','You already saved this search')
return dajax.json()
dajaxice_functions.register(subscribe)
,然後將其從這個稱爲js的方法
function send_form_top(){
data = $('#subscribe').serializeObject(true);
Dajaxice.maynard.maynard_core.subscribe(Dajax.process,{'form':data});
}
形式是一種基本形式與動作 「#」 和的onclick = 「send_form_top();」
我遵循安裝和配置指南(設置配置,網址配置等等等等),這是一個非常實用的101。
在urls.py
from dajaxice.core import dajaxice_autodiscover
dajaxice_autodiscover()
...
django.conf.urls.defaults.url(r'^%s/' % settings.DAJAXICE_MEDIA_PREFIX, django.conf.urls.defaults.include('dajaxice.urls')),
我settings.py中添加 'dajaxice' 我安裝的應用程序,並DAJAXICE_MEDIA_PREFIX是 'dajaxice'(如文檔)。 模板也很好(因爲我有包含動態編譯的js的dajaxice)
但是我仍然無法使它工作。我檢查THROU響應頭,這就是我得到的dajax.js文件:
maynard_core: {
subscribe: function(callback_function, argv, custom_settings){
Dajaxice.call('maynard.maynard_core.subscribe', callback_function, argv, custom_settings);
},
...
這告訴我,提交方法,這是內部的梅納德文件ajax.py/maynard_core /實際上是包括在內,回調也是正確的。我真的不知道如何調試,django日誌沒有顯示任何信息。感謝所有提前,我真的在這個我的頭髮鬆動。
小評論:在訂閱方法中有dajaxice裝飾器和function_register。這只是因爲我嘗試了他們兩個,使用@dajaxice_register或dajaxice_functions.register(訂閱)沒有區別。代碼不是凌亂:) – 2012-01-02 10:30:42