Я пытаюсь создать базовую форму отправки (как пример dajaxice), но получаю сообщение об ошибке 404 из консоли firebug:
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 ();"
Я следовал за установкой и настройкойруководство (настройки настроены, URL-адреса настроены и т. д. и т. д.), и это очень 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')),
Я добавил 'dajaxice' в мои установленные приложения в settings.py, и DAJAXICE_MEDIA_PREFIX - это 'dajaxice' (как в документации).Шаблоны тоже подойдут (так как у меня есть динамически скомпилированный js-файл dajaxice)
Но все же я не могу заставить его работать.Я проверил заголовки ответа, и вот что я получаю для файла dajax.js:
maynard_core: {
subscribe: function(callback_function, argv, custom_settings){
Dajaxice.call('maynard.maynard_core.subscribe', callback_function, argv, custom_settings);
},
...
Это говорит мне о том, что метод submit, который находится в файле ajax.py внутри maynard / maynard_core /на самом деле включен и обратный вызов тоже правильный.Я действительно не знаю, как отладить это больше, логи django ничего не показывают об этом.Спасибо всем заранее, я действительно теряю свои волосы на этом.